Что я пытаюсь сделать, это перезапустить веб-страницу, как только она закрывается.Службы не дают нам знать, что это не работает.(Плохое программирование на стороне создателя) Мы знаем только, что сайт не работает, когда он не работает.Предупреждений нет.Коды ошибок нет, просто идет вниз.Я работал с Invoke-WebRequest
.
$URL = "http://test.example.org"
while (!(Invoke-WebRequest -Uri $URL -UseBasicParsing -Method Head -ErrorAction SilentlyContinue)) {
Send-MailMessage -To "admin@example.org" -Body "$URL is down" -Subject "Site Down" -SmtpServer mail.example.org -From "SiteMonitor@Example.org"
Get-Service -ComputerName Example_Server -Name "Website Service" | Stop-Service
sleep 2
Get-Service -ComputerName Example_Server -Name "Website Service" | Set-Service -Status Running
sleep 2
"$(Get-Date)" >> C:\logs\ExampleDown.txt
if (Invoke-WebRequest -Uri $URL -UseBasicParsing -Method Head -ErrorAction SilentlyContinue) {
Send-MailMessage -To "admin@example.org" -Body "$URL is Up" -Subject "Site Up" -SmtpServer mail.example.org -From "SiteMonitor@Example.org"
}
}
Единственная проблема, с которой я сталкиваюсь, - когда я делаю Invoke-WebRequest
против сайта, когда он не работает, он выдает сообщение об ошибке, которое останавливает сценарий отработает каждый раз.Сообщение об ошибке о сайте не может быть решено.Я думал, что цикл while будет обрабатывать его с логическим значением и выполнять цикл while, когда будет представлено сообщение об ошибке, поскольку сообщение об ошибке рассматривается как ложное в операторах if по большей части.