Powershell powercli将新快照限制为一次创建一个
我有两个脚本来为一组服务器创建和删除快照。当我删除快照时,它会一次删除一个,但当我创建快照时,它会尝试一次删除所有快照,这会使主机过载。有人知道我缺少一个选项,让它一次创建一个快照吗 下面是我用来创建快照的内容Powershell powercli将新快照限制为一次创建一个,powershell,vmware,powercli,Powershell,Vmware,Powercli,我有两个脚本来为一组服务器创建和删除快照。当我删除快照时,它会一次删除一个,但当我创建快照时,它会尝试一次删除所有快照,这会使主机过载。有人知道我缺少一个选项,让它一次创建一个快照吗 下面是我用来创建快照的内容 get-vm -location “Test-Env” | New-Snapshot -Memory -Quiesce -Name Snap1 get-vm -location “Test-Env” | Get-Snapshot -Name Snap1 | Remove-Snapsho
get-vm -location “Test-Env” | New-Snapshot -Memory -Quiesce -Name Snap1
get-vm -location “Test-Env” | Get-Snapshot -Name Snap1 | Remove-Snapshot
下面是我用来删除快照的内容
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)
}
问题是您使用的位置是一个集合(可能是资源池),所以它试图一次完成所有任务 新的Snapshot命令应该运行每一个命令,并等待您在每个VM上引用它。使用RunAsync命令停止它等待每一个,默认设置为关闭 所以你不需要睡觉
$VMS = get-vm -location “Test-Env”
foreach ($VM in $VMS)
{
$Snapshot = $VM | New-Snapshot -Memory -Quiesce -Name Snap1
}