恢复到多个虚拟机的VM快照

问题描述:

#Connect-VIServer 10.222.111.21 –User root –Password Welcome2world 

$VMs = Get-Content 'C:\vmscripts\vmlist.txt' 

$snapname = 'BaseOS' 

Get-Snapshot -VM $VMs -Name $snapname | Foreach-Object { Set-VM -VM $_.VM -Confirm:$false } 

上述脚本在VM快照存在时正常工作。但是,如果虚拟机的任何一个不具有快照“BaseOs'。失败恢复到多个虚拟机的VM快照

有人能帮助请!该平台是VMware。

+0

请编辑该问题。它缺少重要的细节,如虚拟机使用的平台(它*看起来像VMWare,但为什么要猜测?)和确切的错误信息。 – vonPryz

+0

对不起,错过了详细信息...是它的VMWARE。我猜测TRY和CATCH应该解决这个问题。但不知道在哪里添加TRY/CATCH语句 – Anil

+0

这里失败的含义是什么?你有错误吗?这应该包括在内。 – Matt

这是多么的VMware获取快照CMD-让的作品。如果您指定-Name参数和-VM作为多个主机,如果其中一些主机配置了-Name参数中指定的快照,它将会失败。这将工作: 为您的命令添加一些逻辑以遍历每个$ VM如果快照名称等于$ snapname,则返回。这将工作:

$VMs = Get-Content 'C:\vmscripts\vmlist.txt' 
$snapname = 'BaseOS'; 
foreach($VM in $VMs) { Get-Snapshot -VM $VM | Foreach-Object { if($_.Name -eq $snapname) { Set-VM -VM $VM -SnapShot $snapname -Confirm:$false } } } 
+0

谢谢澄清 – Anil