Есть ли способ предупредить удаленный компьютер об ожидающей перезагрузке И мой сценарий ожидает завершения перезагрузки? - PullRequest
0 голосов
/ 07 февраля 2019

Я хочу объединить функции «shutdown.exe» и «Вы выйдете из системы через x минут» и командлет Restart-Computer «-Wait -For PowerShell».

У меня есть сценарий, который требует перезагрузки удаленного компьютера. Я хотел бы предупредить пользователя удаленного компьютера о том, что его компьютер перезагрузится через 5 минут. Я также хотел бы, чтобы мой сценарий дождался завершения перезагрузки, прежде чем продолжить работу.

Shutdown.exe имеет отличную систему предупреждений и встроенную задержку, но нет хорошего способа заставить скрипт ждать завершения перезагрузки. Я пробовал цикл, который ожидает, пока Test-Connection не станет $ true,но, конечно, компьютер возвращает эхо-запрос, прежде чем он может принимать команды PowerShell, такие как Invoke-Command. Я мог бы завершить выполнение команды Start-Sleep в конце, но время между командами ping и PowerShell, принимающими команды, зависит от компьютера.

Перезагрузка-Компьютер обладает отличной функцией ожидания PowerShell, но нет способа предупредить пользователя удаленного компьютера о том, чтоих компьютер собирается перезагрузить.Я попытался выполнить приведенные ниже команды, но командлет restart-computer выдаст ошибку, если уже происходит завершение работы.

shutdown /r /t 300 /m \\computer $system
restart-computer -computername $system -Force -Wait -For PowerShell -Timeout 300 -Delay 2

Ответы [ 2 ]

0 голосов
/ 07 февраля 2019

Вы можете попробовать отправить сообщение прямо перед вашим звонком на Restart-Computer, используя команду msg:

msg * /SERVER:$system /TIME:300 "Computer will be restarted in 5 minutes."
restart-computer -computername $system -Force -Wait -For PowerShell -Delay 2
0 голосов
/ 07 февраля 2019

Я не скажу, что это полный ответ на ваш вопрос, но вместо Test-NetConnection (который проверяет только ping / TCP, как вы упомянули), используйте Test-WSMan, который проверит протоколнад которой работает PowerShell Remoting (обратите внимание, что возможны другие протоколы, но вы, вероятно, просто используете этот в своей среде).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...