我正在使用PowerShell Direct和Hyper-V部署Windows虚拟机。虚拟机必须重新启动几次,一旦Windows重新启动,脚本应恢复并运行其他命令。例如,以下是我当前脚本的一部分:
Invoke-Command -VMName 'server2.example.com' -Credential $credential -ScriptBlock {
Rename-Computer -NewName 'server2' -Force -Restart
}
Start-Sleep -s 10
现在,我使用Start-Sleep -s 10
来确保机器在恢复运行其他命令之前启动。但是,我认为这部分是不正确的。我是否需要在我的机器上运行Restart-VM VMNAME
,而不是在VM中的Rename-Computer -NewName 'svn2' -Force -Restart
中使用-Restart
参数?或者有更好的方法吗?
我的问题是当机器还在重新启动时脚本继续运行命令。因此,我收到错误。这是我想解决的问题。
1条答案
按热度按时间mm5n2pyu1#
这里正确的解决方案似乎是使用带有
-Wait
参数的Restart-VM
从主机计算机重新启动VM。所以我不得不换掉这个
用这个