Если вы не вносили никаких изменений в сценарий, и в прошлом он работал нормально, то IMHO, сценарий не будет моей первой целью устранения неполадок.
Что-то изменилось в вашей системе.Это означает, что приложение или сам хост.
Вы можете форсировать сборку мусора, это один из способов ...
### Clear resource environment
Function Clear-ResourceEnvironment
{
# Clear any PowerShell sessions created
Get-PSSession | Remove-PSSession
# Release an COM object created
$null = [System.Runtime.InteropServices.Marshal]::ReleaseComObject([System.__ComObject]$Shell)
# Perform garbage collection on session resources
[System.GC]::Collect()
[GC]::Collect()
[GC]::WaitForPendingFinalizers()
# Remove any custom varialbes created
Get-Variable -Name MyShell -ErrorAction SilentlyContinue | Remove-Variable
}
Лично я действительно не могу себе представить, почему вы выбираете этот подход, вместо того, чтобы делать это постоянным наблюдателем WMI или сказать, что делаетеэто ...
Мониторинг журнала в режиме реального времени ...
# Take action as soon as the incoming line equals error
Get-Content -Path .\SomeLogFileName -Wait -Tail 0 |
Where-Object {$_ -match 'error'}
Почему вы звоните по этому номеру несколько раз?
[System.Windows.Forms.Cursor]::Position = New-Object System.Drawing.Point(60, 305)
sleep -Seconds 01
$SendMouseClick::mouse_event(0x00000002, 0, 0, 0, 0);
$SendMouseClick::mouse_event(0x00000004, 0, 0, 0, 0);
Позвоните этому ...
[System.Windows.Forms.Cursor]::Position = New-Object System.Drawing.Point(60, 305)
... вверху вашего скрипта.
Сделайте эту ...
sleep -Seconds 01
$SendMouseClick::mouse_event(0x00000002, 0, 0, 0, 0);
$SendMouseClick::mouse_event(0x00000004, 0, 0, 0, 0);
sleep -Seconds 01
... функцией и вызовите функцию против дублирующего кодаИтак, что-то вроде.
Function Send-MouseClick
{
sleep -Seconds 01
$SendMouseClick::mouse_event(0x00000002, 0, 0, 0, 0);
$SendMouseClick::mouse_event(0x00000004, 0, 0, 0, 0);
sleep -Seconds 01
}
if ($lastSent -ne $currentLine -and $currentLine -match "Error")
{
if ($currentLine -match "Error23") {
Send-MouseClick
}
Просто некоторые идеи с моей головы, но явно не проверенные.