0
Connect-VIServer $vmserver -User $vmuser -Password $vmpass
#Create snapshot
$task1 = New-Snapshot -Name 'variable' -VM $vmname -RunAsync
Start-Sleep -Seconds 60
Wait-Task -Task $task1

#Restart VM
$task2 = Restart-VM -VM $vmname -Confirm:$false -RunAsync
Start-Sleep -Seconds 60
Wait-Task -Task $task2

#Revert Snapshot
$task3 = Set-VM -VM $vmname  -Snapshot 'Fresh' -Confirm:$false -RunAsync
Wait-Task -Task $task3

これは、スナップショットが作成されるのを待っておらず ( task1)、 に進みtask2ます。もちろん、すでにいくつかの操作が実行されているため失敗します。また、スナップショットの作成中に、この操作は現在の状態では実行できないと表示されますVM を作成します。

4

1 に答える 1

1

あなたが期待する仕事をすることができるかどうか-RunAsync、私は興味があります。多分そうじゃない?まだチェックしていない場合はチェックしてください。wait-task help About_RunAsync

別のアプローチを次に示します。

New-Snapshot -Name test -VM $vmname
do {write-host "snapping..."; start-sleep -sec 5}
until (get-snapshot -vm $vmname -name test)
write-host "snapped"

そして別のスリリングな読み物:help wait-job

于 2013-05-30T12:53:45.987 に答える