停電が長引いた場合に仮想マシンをシャットダウンするために使用する小さな Powershell スクリプトがあります。特定の VM オブジェクトを取得し、シャットダウンを強制します。
Function DirtyShutdown
{ param([VMware.VimAutomation.ViCore.Impl.V1.Inventory.VirtualMachineImpl]$VM )
$VM | Stop-VM -Confirm:$false
}
start-job コマンドを使用してこれらすべてのタスクを並行して実行することで、このプロセスをスピードアップしたいと考えています。私は正しいと信じている以下を含むいくつかの変種を使用してみました。
Start-Job -InputObject $VM -ScriptBlock{ $input | Shutdown-VMGuest -Confirm:$false }
Receive-Job の出力に基づくと、使用中のスナップ (上記の関数が呼び出される前に追加されたもの) が Start-Job のコンテキストで読み込まれていないことが問題のようです。
これを実現するための正しい構文は何ですか?