powercli 限制新快照一次创建一个

powercli limit new-snapshot to create one at a time

我有几个脚本可以为一组服务器创建和删除快照。当我删除快照时,它一次只做一个,但当我创建快照时,它会尝试一次全部完成,这往往会使主机过载。有谁知道我遗漏了一个让它一次创建一个快照的选项?

这是我用来创建快照的内容

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

这是我用来删除快照的方法

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

您可以简单地使用 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)
    } 

问题是您使用的 location 是一个集合(可能是资源池),因此它会尝试一次完成所有操作。

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
}