以下是一个示例脚本,可以根据您的需求进行修改:

# 定义 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 都完成快照创建时,脚本将输出“所有快照创建成功!”的消息。

使用 PowerShell 脚本批量创建 VMware 快照(分批处理)

原文地址: https://www.cveoy.top/t/topic/nA3E 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录