Powercli限制new-snapshot每次只能创建一个



我有两个脚本来为一组服务器创建和删除快照。当我删除快照时,它一次做一个,但当我创建快照时,它试图一次做所有这些,这往往会使主机过载。有人知道我错过了一个选项,让它一次创建一个快照吗?

下面是我用来创建快照的代码

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

下面是我用来删除快照的方法

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

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

New-Snapshot命令应该运行每个快照并等待每个虚拟机引用它。使用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
} 

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

最新更新