我有几个脚本来创建和删除一组服务器的快照。当我删除快照时,它一次只做一个快照,但是当我创建快照时,它会尝试一次性完成这些快照,这往往会使主机过载。有没有人知道我错过了一个选项,让它一次只创建一个快照?
下面是我用来创建快照的内容
get-vm -location “Test-Env” | New-Snapshot -Memory -Quiesce -Name Snap1下面是我用来删除快照的内容
get-vm -location “Test-Env” | Get-Snapshot -Name Snap1 | Remove-Snapshot发布于 2016-11-18 10:56:12
问题是您使用了location,它是一个集合(可能是资源池),因此它尝试一次完成所有这些操作。
命令应该运行每个命令,并等待它,您将在每个VM中引用它。使用RunAsync命令停止等待每个命令,默认值为off。
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
} 发布于 2016-10-26 21:30:05
您可以简单地使用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)
} https://stackoverflow.com/questions/40268941
复制相似问题