wait-task在powershell中不起作用

时间:2013-05-29 17:33:35

标签: powershell powercli

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,也无法在当前状态下执行操作。

1 个答案:

答案 0 :(得分:1)

我很好奇-RunAsyncwait-task是否可以完成您期望的工作。 Maybe not?如果您还没有,请查看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