В документах предлагаются два способа, оба из которых совершенно бесполезны, чтобы определить, доступен ли удаленный компьютер для удаленного взаимодействия PowerShell.
Test-Connection
бесполезен, поскольку отправляет только ping, однако, в пункте назначения может быть запущен Intel AMT и, следовательно, он отвечает на ping или может не работать служба winRM, поэтому это не дает никакой полезной информации.
Test-WSMan
должен проверить доступность Windows службы RM, но работает только в том случае, если работает WinRM, в противном случае (компьютер выключен или WinRM не запущен) выдает ошибку:
Test-WSMan: клиент не может подключиться к пункт назначения указан в запросе. Убедитесь, что служба в месте назначения работает и принимает запросы. Обратитесь к журналам и документации для службы WS-Management, работающей в месте назначения, чаще всего IIS или WinRM. Если местом назначения является служба WinRM, выполните следующую команду в месте назначения для анализа и настройки службы WinRM: «winrm quickconfig». В строке: 2 символа: 1
Итак, я попытался обернуть Test-WSMan
в try-catch
командах, но все равно выдает ошибку, на самом деле она не обнаруживается:
Try {
Test-WSMan -ComputerName destinationcomputer
} catch {
write-output "not working"}
Есть идеи, как это сделать? (я был бы счастлив с Test-WSMan
, если бы я мог избавиться от ошибки и заставить ее возвращать true или false)