【PowerShell】リモートコンピューターが再起動するまで待ち合わせるには

Windows PowerShell には Restart-Computer という便利なコマンドレットが用意されています。 Restart-Computer –ComputerName TARGETCOMPUTER とすれば、リモートコンピューターを再起動することができます。 もしリモートコンピューターに誰かがログオンしていても、-Force を指定することで強制的に再起動できます。もちろん管理者権限が必須です。 さて、ここで問題です。 リモートコンピューターに対して複雑な処理をしているとき、一度再起動が必要な処理があったとします。 もちろん、再起動後にも処理は継続しなければなりません。 どうしましょう? 例えば、以下のようなスクリプトを作れば、待ち合わせは可能です。 ※ 2012.6.18 14:21 スクリプトに不備があったので修正しました…すみません New-PSSession -ComputerName $ServerName Restart-Computer -ComputerName $ServerName -Force do #セッションが切断されるまで待ち合わせ {     Start-Sleep -Seconds 1 } Until ((Get-PSSession -ComputerName $ServerName).count -eq 0) do #セッションが再接続されるまで待ち合わせ {     Start-Sleep -Seconds 1     $S = New-PSSession -ComputerName $ServerName }…