如何在ESXi 5上通过sshclosures主机,以便正确closuresguest虚拟机?

我有sshlogin到ESXi 5主机。

所有的guest虚拟机都运行vmware工具,所以可以正确的closures主机。

我想在vSphere客户端中使用此菜单选项的等效项目:

在这里输入图像说明

它会自动closures所有guest虚拟机(如果他们有vmware工具运行),然后主机本身。

ESXi 5命令行中是否有这样的“智能”shutdown all命令?

我想我find了答案。 这个脚本可以做到这一点:

http://www.virtu-al.net/2010/01/06/powercli-shutdown-your-virtual-infrastructure/

请注意17ff行中等待虚拟机closures的部分

谢谢谢尔盖!

     Connect-VIServer MyVIServer
 2    
 3#获取所有ESX主机
 4 $ ESXSRV = Get-VMHost
五    
 6#对于ESX主机上的每个VM
 7 Foreach($ VM in($ ESXSRV | Get-VM)){
 8#closures客人干净
 9 $ VM |  Shutdown-VMGuest -Confirm:$ false
 10}
 11   
 12#设置在假定剩余的电源客人卡住之前等待的时间
 13 $等待时间= 200#秒
 14   
 15 $ Time =(Get-Date).TimeofDay
 16做{
 17#等待虚拟机关机干净
 18睡眠1.0
 19 $ timeleft = $ waittime  - ($ Newtime.seconds)
 20 $ numvms =($ ESXSRV | Get-VM |其中{$ _。PowerState -eq“PoweredOn”})。Count
 21写下“等待closures$ numvms虚拟机或直到$ timeleft秒”
 22 $ Newtime =(Get-Date).TimeofDay  -  $ Time
 23}直到((@($ ESXSRV | Get-VM | Where {$ _。PowerState -eq“PoweredOn”})。Count)-eq 0  - 或($ Newtime).Seconds -ge $ waittime)
 24   
 25#closuresESX主机
 26 $ ESXSRV |  Foreach {Get-View $ _。ID} |  Foreach {$ _。ShutdownHost_Task($ TRUE)}
 27   
 28写主机“关机完成”