使用 PowerShell 脚本批量创建 VMware 快照(分批处理)
以下是一个示例脚本,可以根据您的需求进行修改:
# 定义 VM 清单
$vmList = 'VM1', 'VM2', 'VM3', 'VM4', 'VM5', 'VM6'
# 定义每次处理的 VM 数量
$batchSize = 3
# 迭代处理 VM 清单
for ($i = 0; $i -lt $vmList.Count; $i += $batchSize) {
# 获取当前批次的 VM
$batch = $vmList[$i..($i + $batchSize - 1)] | Where-Object { $_ -ne $null }
# 创建快照
foreach ($vm in $batch) {
Write-Host 'Creating snapshot for $vm'
Get-VM $vm | New-Snapshot -Name 'Snapshot $(Get-Date -Format 'yyyyMMddHHmmss')'
}
# 等待所有快照创建完成
while ($batch | Where-Object { (Get-VM $_ | Get-Snapshot -Name 'Snapshot*') -ne $null }) {
Write-Host 'Waiting for snapshots to complete...'
Start-Sleep -Seconds 10
}
}
Write-Host 'All snapshots created successfully!'
此脚本将 VM 清单分批处理,每次处理指定数量的 VM。在每个批次中,它会为每个 VM 创建一个新的快照,并等待所有快照创建完成后继续处理下一批 VM。最终,当所有 VM 都完成快照创建时,脚本将输出“所有快照创建成功!”的消息。
原文地址: https://www.cveoy.top/t/topic/nA3E 著作权归作者所有。请勿转载和采集!