Hyper-V上の仮想マシンの電源をPowerShellで操作する方法

Hyper-V上の仮想マシンの電源をPowerShellで操作する方法

WindowsのHyper-V上に作成した仮想マシンを操作する場合、管理ツール「Hyper-Vマネージャー」を使用するのが一般的ですが、仮想マシンの操作はPowerShellコマンドレットから実行することもできます。

そこでここでは、Windows 10のHyper-Vを例に、以下に挙げる仮想マシンの電源操作をPowerShellで行う方法を紹介します。

  • 起動
  • シャットダウン
  • リセット
  • 電源オフ
  • 保存
  • 一時停止
  • 強制リセット
Windows 10のHyper-Vで仮想マシンの画面を素早く開く方法
ここでは、Windows 10のHyper-Vで、素早く仮想マシンの画面を表示したり、起動したりする方法を紹介します。

この記事は、以下の環境で実行した結果を基にしています。他のエディションやバージョンでは、動作結果が異なる場合があることをご了承ください。

ソフトウェアバージョン
Windows 10 Pro 64bit21H2

仮想マシンの電源操作

仮想マシンの電源操作をPowerShellで行うときは、管理者権限でPowerShellを起動してコマンドを実行します。

仮想マシン起動するときは、次のようにコマンドを実行します。

PS C:\> Start-VM -Name <仮想マシン名>

仮想マシンをシャットダウンするときは、次のようにコマンドを実行します。

PS C:\> Stop-VM -Name <仮想マシン名>

仮想マシンをリセットするときは、次のようにコマンドを実行し、リセットは、OSの再起動ではなく、パソコンのリセットボンタンを押すのと同じ効果です。

PS C:\> Restart-VM -Name <仮想マシン名>

仮想マシンの電源をOFFにするときは、次のようにコマンドを実行します。

PS C:\> Stop-VM -Name <仮想マシン名> -TurnOff

仮想マシンを保存するときは、次のようにコマンドを実行します。

PS C:\> Stop-VM -Name <仮想マシン名> -Save

仮想マシンを一時停止するときは、次のようにコマンドを実行します。

PS C:\> Resume-VM -Name <仮想マシン名>

仮想マシンの電源を一括操作する

仮想マシンの一覧を確認できるGet-VMコマンドを組み合わせることで、複数台の仮想マシンに対して一括で電源操作を行うこともできます。

たとえば、実行中のすべての仮想マシンをシャットダウンするときは、次のようにコマンドを実行します。

PS C:\> Get-VM | where {$_.State -eq 'Running'} | Stop-VM

仮想マシン名に特定の文字列を含む仮想マシンだけシャットダウンしたいときは、次のようにコマンドを実行します。

以下の例では、仮想マシン名に「Win」を含む仮想マシンだけシャットダウンします。

PS C:\> Get-VM | where {$_.Name -like "*Win*"} | Stop-VM

逆に、電源がオフになっているすべての仮想マシンを起動するには、次のようにコマンドを実行します。

PS C:\> Get-VM | where {$_.State -eq 'Off'} | Start-VM

仮想マシンを強制リセットする

仮想マシンがHyper-Vマネージャーやコマンドからの操作を受け付けなくなったときは、以下の手順で強制的にリセットすることができます。

まず、以下のコマンドを実行して強制リセットしたい仮想マシンのIDを確認します。

PS C:\> (Get-VM <仮想マシンの名前>).ID

Hyper-V上の仮想マシンの電源をPowerShellで操作する方法

つぎに、タスクマネージャーを起動して「詳細」タブを開き、「ユーザー名」欄に上で確認したIDが表示された「vmwp.exe」というプロセスを選択し、右下の「タスクの終了」をクリックします。

Hyper-V上の仮想マシンの電源をPowerShellで操作する方法

確認画面が表示されるので「プロセスの終了」をクリックします。

Hyper-V上の仮想マシンの電源をPowerShellで操作する方法

以上で、対象の仮想マシンが強制リセットされます。

なお、言わずもがなですが、強制リセットすると、仮想マシン上で編集中のデータがあった場合は消失することになるのでご注意ください。

参考

Hyper-V Module | Microsoft Docs

あとがき

操作対象の仮想マシンの数が多いほど、コマンドで操作したほうが作業効率は高いでしょう。

お試しあれ。