2017-08-27 85 views
0
#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

回答

0

這是多麼的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

相關問題