恢复到多个虚拟机的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。
答
这是多么的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
请编辑该问题。它缺少重要的细节,如虚拟机使用的平台(它*看起来像VMWare,但为什么要猜测?)和确切的错误信息。 – vonPryz
对不起,错过了详细信息...是它的VMWARE。我猜测TRY和CATCH应该解决这个问题。但不知道在哪里添加TRY/CATCH语句 – Anil
这里失败的含义是什么?你有错误吗?这应该包括在内。 – Matt