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,这当然会失败,因为已经执行了一些操作。此外,在创建快照时,它说即使它在当前状态下也无法执行此操作创建虚拟机。

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 回答