WMI+VBScript経由で取得するサンプルスクリプトはいくつか見つけたんですが、PowerShell版はうまく動かなかったりするので書き直したものを残しておきます。 VMStateは仮想マシンの状態を文字列に戻すためのハッシュ変数。 Msvm_ComputerSystemが戻すオブジェクトは仮想マシン+ホストマシンの一覧になっていて、EnabledStateが実際のマシン状態を表す整数値(と見せかけて文字列)を返してくる。 ※ EnabledStateをそのままVMState変数に突っ込むと"2"みたいな文字列でハッシュを当たりに行くので、[int]$_.EnabledStateでint型に変換してからVMStateに当たりに行くのが書き換えたポイント。 $VMState=@{ 0="Unknown" ; 2="Running" ; 3="Stopped" ; 32768="Pause