Я хочу объединить функции «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