有没有一种方法可以警告远程计算机等待重新启动,并且让我的脚本等待重新启动完成?

时间:2019-02-06 21:02:13

标签: powershell

我希望结合使用“ shutdown.exe”的“您将在x分钟内注销”功能和Restart-Computer cmdlet的“ -Wait -For PowerShell”功能。

我有一个脚本,要求远程计算机重新启动。我想警告远程计算机的用户,他们的计算机将在5分钟后重新启动。我还希望我的脚本能够等到重启完成后再继续前进。

Shutdown.exe具有出色的警告系统和内置的延迟功能,但没有很好的方式让脚本等待重新启动完成。我尝试了一个循环,直到Test-Connection为$ true为止,但是当然,计算机在可以接受诸如Invoke-Command之类的PowerShell命令之前会返回ping。我可以在最后一巴掌开始睡眠,但是ping和PowerShell接受命令之间的时间因计算机而异。

重启计算机具有强大的“等待PowerShell”功能,但是无法警告远程计算机的用户其计算机即将重启。我已经尝试运行以下命令,但是如果已经在执行关机操作,则restart-computer cmdlet将引发错误。

+

2 个答案:

答案 0 :(得分:0)

我不会说这是对您问题的完整答案,而是use Test-WSMan代替Test-NetConnection(仅测试您提到的ping / TCP),{{3}}将测试PowerShell的协议远程操作(注意可以使用其他协议,但是您可能只是在环境中使用了该协议)。

答案 1 :(得分:0)

您可以尝试使用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