【 Start-VM 】【 Stop-VM 】【 Restart-VM 】コマンドレット――Hyper-V仮想マシンを起動する/停止する/再起動するWindows PowerShell基本Tips(151)

本連載は、PowerShellコマンドレットについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は「Start-VM」「Stop-VM」「Restart-VM」コマンドレットを解説します。

» 2026年02月04日 05時00分 公開
[後藤諭史株式会社ネットワールド]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「Windows PowerShell基本Tips」のインデックス

連載目次

 本連載では、Windows PowerShellの基本的なコマンドレットについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、「Hyper-V」の仮想マシンを起動する「Start-VM」コマンドレット、仮想マシンを停止する「Stop-VM」コマンドレット、仮想マシンを再起動する「Restart-VM」コマンドレットです。

Start-VM/Stop-VM/Restart-VMコマンドレットとは?

 Hyper-Vの仮想マシンも物理的なコンピュータと同様に、「電源状態」が存在します。仮想マシンに電源が投入されれば「起動状態」に遷移し、電源がオフになれば「停止状態」となります。物理コンピュータでの「電源投入」が「仮想マシンの起動」という操作に相当します。電源操作はGUI(グラフィカルユーザーインタフェース)ツール「Hyper-Vマネージャー」であれば、仮想マシンのメニューやコンソールから実施できます(画面1)。

ALT 画面1 Hyper-Vマネージャーではメニューなどからで電源を操作できる(仮想マシンが起動中のため「起動」は表示されない)

 当然のことながら、これらの電源操作はWindows PowerShellでも実施可能です。仮想マシンを起動する(電源投入する)コマンドレットがStart-VMコマンドレット、仮想マシンを停止するコマンドレットがStop-VMコマンドレット、仮想マシンを再起動するコマンドレットがRestart-VMコマンドレットです。

 今回は、これらの仮想マシンの電源操作に関わるコマンドレットをまとめて紹介します。

【注】Start-VM/Stop-VM/Restart-VMは「Windows PowerShell用Hyper-Vモジュール」に含まれるコマンドレットになります。GUIの「Windowsの機能の有効化」や「役割と機能の追加」からHyper-Vを有効化するか、PowerShellから「Enable-WindowsOptionalFeature」コマンドレットを使用して有効化します。


Start-VM/Stop-VM/Restart-VMコマンドレットの書式

Start-VM [オプション]

Stop-VM [オプション]

Restart-VM [オプション]


Start-VMコマンドレットの主なオプション

オプション 意味
-Name 仮想マシン名を指定する
-ComputerName リモートのHyper-Vホストの仮想マシンを起動する場合にコンピュータ名を指定する。省略可能

Stop-VMコマンドレットの主なオプション

オプション 意味
-Name 仮想マシン名を指定する
-Save 仮想マシンを保存状態にする。省略可能
-TurnOff 電源断処理を行う。省略可能
-Force 仮想マシンが5分以内にシャットダウンできなかった場合に強制的にシャットダウン処理を実行する。また、応答プロンプトを非表示にする。省略可能
-ComputerName リモートのHyper-Vホストの仮想マシンを停止する場合、コンピュータ名を指定する。省略可能

Restart-VMコマンドレットの主なオプション

オプション 意味
-Name 仮想マシン名を指定する
-Force 応答プロンプトを非表示にする。省略可能
-ComputerName リモートのHyper-Vホストの仮想マシンを再起動する場合にコンピュータ名を指定。省略可能

仮想マシンを起動する

 必須オプションの「-Name」オプションで停止状態の仮想マシン名を指定してStart-VMコマンドレットを実行すると、仮想マシンが起動します(画面2)。なお、Start-VMコマンドレットは管理者権限での実行が必要となります。

コマンドレット実行例

Start-VM -Name "Gen2-VM"

ALT 画面2 「-Name」オプションで指定した仮想マシンを起動する

 仮想マシン名に特定の文字列が含まれるなど、条件を指定してそれに一致した複数の仮想マシンを一斉起動させることも可能です。その場合、起動する仮想マシンを絞り込むために本連載118回で紹介した「Get-VM」コマンドレットを使用します。

 例えば、仮想マシン名に「Test」が含まれる仮想マシンをGet-VMコマンドレットと「Where-Object」コマンドレット(whereと省略可能)で取得し、それをパイプ(|)でつないでStart-VMコマンドレットに渡すことで、Get-VMコマンドレットで取得した仮想マシン群を一斉に起動できます(画面3)。

コマンドレット実行例

Get-VM | Where {$_.Name -like "*Test*" } | Start-VM

ALT 画面3 名前に「Test」が含まれる仮想マシンをGet-VMコマンドレットとWhere-Objectコマンドレットを併用して取得し、取得した仮想マシンをStart-VMコマンドレットで一斉起動した

 その他、第1世代仮想マシンを全て起動させるなど、Get-VMコマンドレットを駆使することで意図した仮想マシン群を同時起動できるようになります。また、「-Name」オプションで「*」を指定することで、Hyper-Vホスト上の全ての仮想マシンを起動することも可能です(画面4)。

コマンドレット実行例

Start-VM -Name *

ALT 画面4 名前に「*」を指定することで、Hyper-Vホスト上の全ての仮想マシンを起動できる

仮想マシンを停止する

 起動状態の仮想マシンを停止する場合は、Stop-VMコマンドレットを使用します。必須オプションである「-Name」オプションで仮想マシン名を指定することで、指定した仮想マシンを停止できます(画面5)。なお、Stop-VMコマンドレットは管理者権限での実行が必要となります。

コマンドレット実行例

Stop-VM -Name "Gen2-VM"

ALT 画面5 「-Name」オプションで指定した仮想マシンを停止(シャットダウン)できる

 画面5のように「-Name」オプションのみを指定してStop-VMコマンドレットを実行した場合は、ゲストOSに「統合サービス」が導入されていれば、ゲストOS上での正常なシャットダウン処理を経た安全な停止が行われます(画面6)。

ALT 画面6 「-Name」オプションだけを付与してStop-VMコマンドレットを実行すると、ゲストOSのシャットダウン処理を伴う停止処理が行われる

 統合サービスが導入されていない環境では、以下の画面7のように「安全にシャットダウンできない」旨の警告メッセージが表示されます。この操作は、メッセージにもある通り、物理コンピュータでの「電源ケーブル抜去」に相当します。従って、この操作で停止した仮想マシンでは「予期せぬシャットダウン」イベントが記録されることを念頭に置き、問題がなければ[y]キーで応答します。

ALT 画面7 統合サービスが導入されていない環境でStop-VMコマンドレットを実行すると、電源断の警告メッセージが表示される

 なお、この応答プロンプトを表示させたくない場合は「-Force」オプションを併用します。

 Stop-VMコマンドレットもStart-VMコマンドレットと同様、Get-VMコマンドレットを併用することで、仮想マシン群を同時にシャットダウンしたり、「-Name」オプションで「*」を指定することで、Hyper-Vホスト上の全仮想マシンに対してシャットダウン処理を行ったりできます(画面8)。

コマンドレット実行例

Stop-VM -Name *

ALT 画面8 名前に「*」を指定することで、Hyper-Vホスト上の全ての仮想マシンを停止(シャットダウン)できる

 既に停止状態にある仮想マシンに対してもシャットダウン処理が行われますが、「既に指定された状態」として処理はスキップされます。


仮想マシンを強制的にシャットダウンする

 Stop-VMコマンドレット実行時に、対象の仮想マシンでアプリケーションが開いていた場合は、以下の画面9のようにシャットダウン処理が実施できない場合があります。

ALT 画面9 アプリケーションが開いているため、Stop-VMコマンドレットによるシャットダウン処理が継続できない

 Stop-VMコマンドレットはこの状態で5分間待機しますが、状態に変化がなかった場合は停止処理に失敗します(画面10)。

ALT 画面10 シャットダウンが完了しなかった場合は、停止処理に失敗する

 このような状態で強制的にシャットダウンを実施するには、「-Force」オプションを利用します。このオプションが併用された場合は、シャットダウンを阻害しているアプリケーションを含めて強制的なシャットダウンが実施され、仮想マシンが停止します(画面11)。

コマンドレット実行例

Stop-VM -Name "Test-VM01" -Force

ALT 画面11 ゲストOS上のアプリケーションを含め、強制シャットダウンが行われて仮想マシンが停止する

 シャットダウンを阻害していた原因が画面9のようにアプリケーション上のデータが未保存であることだった場合は、アプリケーションデータは保存されずにそのままシャットダウンされてしまうので注意してください。


仮想マシンの電源を切る

 Stop-VMコマンドレットで「-TurnOff」オプションを利用すると、ゲストOSの状態を問わずに電源断処理が行われます(画面12)。いわゆる「電源ケーブル抜去」に相当しますが、画面7のような警告メッセージは表示されずにそのまま仮想マシンが停止するので、実行の際は仮想マシンの指定に注意が必要です。

コマンドレット実行例

Stop-VM -Name "Test-VM01" -TurnOff

ALT 画面12 「-TurnOff」オプション使用時は、無警告で電源断処理が実施される

仮想マシンを保存する

 Stop-VMコマンドレットで「-Save」オプションを付与した場合は、シャットダウンを伴う停止処理ではなく、仮想マシンの保存処理が行われます(画面13)。

コマンドレット実行例

Stop-VM -Name "Test-VM01" -Save

ALT 画面13 「-Save」オプションを付与した場合は、シャットダウンではなく保存が実行される

 ここでの「保存」とは、仮想マシンのシャットダウンではなく、コマンドレットを実行した瞬間の仮想マシンのメモリ状態などをファイルへ書き出し、その時点の動作状況が保存された状態を指します。保存された仮想マシンは、仮想マシンを起動(Start-VMコマンドレットを実行)することで、保存された時点の状態がそのまま復元されます。


仮想マシンを再起動する

 起動状態の仮想マシンを再起動する場合は、Restart-VMコマンドレットを使用します。必須オプションである「-Name」オプションで仮想マシン名を指定することで、指定した仮想マシンを再起動できます(画面14)。なお、Restart-VMコマンドレットは管理者権限での実行が必要となります。

コマンドレット実行例

Restart-VM -Name "Test-VM01"

ALT 画面14 「-Name」オプションで指定した仮想マシンを再起動できる

 Restart-VMコマンドレットを実行すると、実行確認のプロンプトが表示されます。再起動する仮想マシンに間違いがなければ[y]キーで応答します。

 しかし、再起動は「Stop-VM -TurnOff」コマンドレットと同様の停止処理となるため、ゲストOSから見ると「強制電源断」になり、起動後のデスクトップには「予期しないシャットダウン」の画面が表示されてしまいます。

 そのため、Restart-VMコマンドレットは操作不能になった仮想マシン、もしくはゲストOSのシャットダウン処理が必要ない仮想マシンに対してのみ実施し、Windows OSをはじめとする安全なシャットダウン処理が必要な仮想マシンに対しては、それが望めない場合にのみ実施するようにしましょう。

 また、Restart-VMコマンドレット実行時は応答プロンプトが表示されてしまいます。スクリプトでの実行などでは応答プロンプトの表示は好ましくないため、「-Force」オプションを付与することで応答プロンプトを非表示にできます(画面15)。

コマンドレット実行例

Restart-VM -Name "Test-VM01" -Force

ALT 画面15 「-Force」オプションを使用することで応答プロンプトを非表示にできる

筆者紹介

後藤 諭史(ごとう さとし)

株式会社ネットワールド所属。Microsoft MVP for Cloud and Datacenter Management(2012-2026)。現業の傍ら、コミュニティーイベントでの登壇や著作にてMicrosoftテクノロジーに関する技術情報の発信、共有を続けている。ネットワークやハードウェアといった物理層に近いところが大好きな、昔ながらのインフラ屋さん。得意技はケーブル整線。近著は『詳解! Windows Server仮想ネットワーク』(日経BP社)。


Copyright © ITmedia, Inc. All Rights Reserved.

アイティメディアからのお知らせ

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2026
人に頼れない今こそ、本音で語るセキュリティ「モダナイズ」
4AI by @IT - AIを作り、動かし、守り、生かす
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。