2017-08-27 4 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スナップショットが存在するため正常に動作します。 VMのいずれかがスナップショット」BaseOsを持っていない場合しかし、それは失敗します。複数のVMのVMスナップショットへの復帰

誰かが!プラットフォームは、VMwareでください助けることができます。

+0

virtuaのような重要な詳細はありません(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

関連する問題