在 foreach 循环后删除睡眠

Remove a sleep after a foreach loop

这段脚本对重启列表中的每台服务器做了什么,它发送一个重置命令,然后休眠 1800 秒

Foreach ($server in $rebootlist)
    {
        New-BrokerHostingPowerAction -Action Reset -AdminAddress $ddc -MachineName $server
    }

睡眠 1800(30 分钟)然后继续下一部分。

我在那里睡了这么久,因为我不知道别的方法

您可以在继续之前测试每台服务器是否都已启动。

while ($i -lt $rebootlist.count){
    $i = 0
    foreach ($server in $rebootlist){
        if (Test-Connection $server -count 1 -ErrorAction ignore){
            $i++
        }
        else{
            Write-Verbose "$server offline"
        }
    }
    sleep -Seconds 1
}