powercli限制new-snapshot一次创建一个

时间:2016-10-26 17:48:23

标签: powershell vmware powercli

我有几个脚本可以为一组服务器创建和删除快照。当我删除快照时,它一次只执行一次,但是当我创建快照时,它会尝试一次性完成这些快照,这会使主机过载。有没有人知道我错过了一个选项,让它一次创建一个快照?

以下是我用来创建快照的内容

get-vm -location “Test-Env” | New-Snapshot -Memory -Quiesce -Name Snap1

以下是我用来删除快照的内容

get-vm -location “Test-Env” | Get-Snapshot -Name Snap1 | Remove-Snapshot

2 个答案:

答案 0 :(得分:0)

您只需使用Start-Sleep cmdlet等待,或使用do / while循环,直到您检查快照的完成情况,使用如下内容:

$VMS = get-vm -location “Test-Env”

    foreach ($VM in $VMS)
    {
        $Snapshot = $VM | New-Snapshot -Memory -Quiesce -Name Snap1
        do {
        sleep 1
        }
        until (Get-Snapshot $Snapshot)
    } 

答案 1 :(得分:0)

问题是你使用的是一个集合(可能是资源池)的位置,所以它试图一次性完成它们。

New-Snapshot命令应该运行每个命令并等待每个VM引用它。使用RunAsync命令停止等待每个命令,默认为关闭。

https://www.vmware.com/support/developer/PowerCLI/PowerCLI41U1/html/New-Snapshot.html

所以你不需要睡觉

$ VMS = get-vm -location“Test-Env”

foreach ($VM in $VMS)
{
    $Snapshot = $VM | New-Snapshot -Memory -Quiesce -Name Snap1
}