在 Powershell 中排队重新启动

Ace*_*ity 5 powershell

我正在做一个重启大量计算机的项目。重要的要求之一是分阶段重新启动,这样所有机器都不会立即重新启动(太快会导致 SAN 出现问题)。

我尝试通过限制到 50 个并行操作并添加 15 秒延迟(每分钟 200 次重新启动)来在工作流中执行此操作。

workflow Bounce-Computer {
param(
[string[]]$Computers
)
foreach -parallel -throttlelimit 50 ($computer in $Computers) {
    Restart-Computer -PSComputerName $computer -Force
    Start-Sleep -Seconds 15
    }
}
Run Code Online (Sandbox Code Playgroud)

但是我遇到了一个问题,如果目标计算机上的 WMI 被破坏,工作流就会挂起。

除了在所有目标机器(有几千台)上修复 WMI 之外,我将如何以受控方式执行此类操作?工作?

Ace*_*ity 0

我最终重写了脚本以使用 VIC。在这种环境下 WMI 太不稳定,无法使用。