Сценарий PowerShell останавливает выполнение, когда компьютер под управлением Windows XP заблокирован
У меня есть следующий скрипт, который выполняет непрерывный пинг и сообщает о сбоях. Он работает нормально, за исключением того, что петля "зависает", когда компьютер заблокирован. Я подтвердил это, запустив сценарий, немедленно заблокировав ПК, подождав 10 минут и увидев, сколько пингов произошло. Это далеко от ожидаемого числа. Что может быть виновником?
Write-Host "Entering monitoring loop..." -Background DarkRed
$ping = new-object System.Net.NetworkInformation.Ping
$count_up = 0
$count_dn = 0
$count_dd = 0
while ($true) {
$result = $ping.send("10.1.1.1")
if ($result.Status -eq "Success") {
$count_up++
$count_dd = 0
}
else {
$count_dn++
$count_dd++
$this_date = Get-Date
Write-Host "VPN ping failed at time " $this_date -Background Magenta
if ($count_dd -gt 3) {
Write-Host "***VPN is Down***" `a
send_mail_notification("VPN is Down", "")
}
}
if ($Host.UI.RawUI.KeyAvailable -and ("q" -eq $Host.UI.RawUI.ReadKey("IncludeKeyUp,NoEcho").Character)) {
Write-Host "Exiting monitoring loop..." -Background DarkRed
break;
}
Start-Sleep -m 250
}
$total = $count_up + $count_dn
$uptime = 100 * $count_up / $total
Write-Host $count_up " out of " $total " pings for a " $uptime "% uptime."