検索
連載

【 Remove-VM 】コマンドレット――Hyper-V仮想マシンを削除するWindows PowerShell基本Tips(121)

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

Share
Tweet
LINE
Hatena
「Windows PowerShell基本Tips」のインデックス

連載目次

 本連載では、Windows PowerShellの基本的なコマンドレットについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、コンピュータ上で動作する仮想マシンを削除する「Remove-VM」コマンドレットです。

Remove-VMコマンドレットとは?

 Microsoftの「Hyper-V」をはじめとするハードウェア仮想化技術を使い始めると、「気が付いたら大量の仮想マシンが出来上がっていた」という経験をした方は多いと思います。

 従来のハードウェアベースのサーバでは、環境1つ用意するにもさまざまなコストがかかっていました。仮想マシンベースのサーバはコストもあまりかからない上、素早く展開できるので「気が付くと大量の仮想マシンでリソースを圧迫していた」という事態に陥っていることも往々にしてあります。

 そうした場合には「(不要な)仮想マシンを削除する」ことでリソースを解放できますが、大量の仮想マシンを一括削除する場合は、やはりPowerShellで処理する方が便利です。その際に利用するコマンドレットが「Remove-VM」です。

 Remove-VMコマンドレットは、Hyper-V上で動作する仮想マシンの環境整理に必須のコマンドレットなので、ぜひ使用方法を押さえておいてください。

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


Remove-VMコマンドレットの書式

Remove-VM [オプション]


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

オプション 意味
-Name 削除する仮想マシンの名前を指定する
-Force 実行時に確認なしで削除したい場合に指定する。省略可能

仮想マシンを削除する

 「-Name」オプションで削除したい仮想マシン名を指定してRemove-VMコマンドレットを実行することで、指定した仮想マシンを削除できます(画面1)。なお、Remove-VMコマンドレットは管理者権限で実行する必要があります。

コマンドレット実行例

Remove-VM -Name Test-VM01

ALT
画面1 仮想マシン名「Test-VM01」の削除を実行し、確認プロンプトに「y」を応答した

 画面1ではRemove-VMコマンドレットの実行前後に本連載第118回で紹介した「Get-VM」コマンドレットを実行し、仮想マシンの状態を確認しています。Remove-VMコマンドレット実行後は、仮想マシン「Test-VM01」が消えていることが分かります。

 また、Remove-VMコマンドレット実行時に、仮想マシンを削除してよいかどうかの確認プロンプトが表示されます。削除処理なので応答は必須と考えますが、スクリプトによる自動処理の場合には応答不要にしたい場合もあります。そうした場合は、「-Force」オプションを指定することで、確認プロンプトを表示することなくすぐさま削除が実行されます(画面2)。

コマンドレット実行例

Remove-VM -Name Test-VM02 -Force

ALT
画面2 仮想マシン名「Test-VM02」を応答プロンプトなしで削除した

複数の仮想マシンを削除する

 「-Name」オプションでワイルドカード(*)を使用することで、条件に一致した仮想マシン名を持つ仮想マシンを一括削除できます(画面3)。

コマンドレット実行例

Remove-VM -Name Test* -Force

ALT
画面3 仮想マシン名に「Test*」を指定して、複数の仮想マシンを一括削除した

条件を指定して仮想マシンを削除する

 「-Name」オプションで仮想マシン名を直接指定することに不安がある場合や、仮想マシン名以外の条件で削除する仮想マシンを絞り込みたい場合には、Get-VMコマンドレットを組み合わせることで、さまざまな条件で対象を絞り込んで仮想マシンを削除できます。

 前項のように仮想マシン名で絞り込む場合は、Get-VMコマンドレットの「-Name」オプションで条件を設定し、パイプ(|)でRemove-VMコマンドレットにつなぎます(画面4)。

コマンドレット実行例

Get-VM -Name Test-*  | Remove-VM -Force

ALT
画面4 Get-VMコマンドレットで仮想マシン名をキーに絞り込み、仮想マシンを一括削除した

 Get-VMコマンドレットで取得可能な値を条件にして仮想マシンを抽出し、Remove-VMコマンドレットへつなぐこともできます。次の例では、第1世代仮想マシンのみを削除しています(画面5)。

コマンドレット実行例

Get-VM | Where-Object { $_.Generation -eq "1" } | Remove-VM -Force

ALT
画面5 Get-VMコマンドレットで第1世代仮想マシンを抽出し、仮想マシンを一括削除した

仮想マシンを削除する際の注意点

 基本的に仮想マシンは「停止(オフ)状態」で削除すると思いますが、仮想マシンは起動中など、停止状態以外のときもあります。

 では、停止状態以外で仮想マシンを削除するとどうなるでしょうか。

 以下の画面6のように、「実行中(Running)」「一時停止(Paused)」「保存完了(Saved)」の各状態の仮想マシンを削除すると、「実行中」と「一時停止(Paused)」状態の仮想マシンはエラーが表示されて削除できませんでした。

ALT
画面6 停止状態以外の仮想マシンを削除したが、エラーが表示されて削除できない

 「保存完了」状態の仮想マシンは削除可能であるため、保存されている仮想マシンを削除したくない場合には、前項の条件設定の際に「状態はオフ(Off)のもの」といった設定が必要になります。

筆者紹介

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

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


Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る