Я хочу иметь возможность получить результаты Invoke-WebRequest и распечатать мой скрипт либо «Сбой», если сервер не был достигнут, либо «Онлайн», если он был достигнут.
Это то, что я делаю, чтобы попытаться это сделать.
$IW_Results = $Servers_to_Check | ForEach-Object { Invoke-WebRequest -Uri $_ }
$err = $IW_Results | ?{$_.gettype().Name -eq "ErrorRecord"}
if($err){
Write-Output "Failed"
}
else {
Write-Output "Online"
}
Мне удалось заставить скрипт напечатать "Online", если сервер достигнут.Однако, когда это не может быть достигнуто, мой скрипт не напечатает «Failed».Вместо этого он выдаст мне ошибку:
Invoke-WebRequest : Unable to connect to the remote server
At C:\Users\admin\Documents\VM-scripts\VM-tester.ps1:32
char:52
+ ... ts = $Servers_to_Check | ForEach-Object { Invoke-WebRequest -Uri $_ }
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:Htt
pWebRequest) [Invoke-WebRequest], WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShe
ll.Commands.InvokeWebRequestCommand
Как мне заставить скрипт распечатать "Failed" вместо этого сообщения об ошибке?
Также переменная $Servers_to_Check
- это несколько серверов