【 Remove-VMNetworkAdapter 】コマンドレット――Hyper-V仮想マシンの仮想ネットワークアダプターを削除する:Windows PowerShell基本Tips(140)
本連載は、PowerShellコマンドレットについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は「Remove-VMNetworkAdapter」コマンドレットを解説します。
本連載では、Windows PowerShellの基本的なコマンドレットについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、「Hyper-V」の仮想マシンに接続された仮想ネットワークアダプターを削除する「Remove-VMNetworkAdapter」コマンドレットです。
目次
Remove-VMNetworkAdapterの概要 | 書式 | オプション
実行例
- Remove-VMNetworkAdapterコマンドレットの注意事項
- 仮想マシンの仮想ネットワークアダプターを削除する
- 特定の仮想スイッチに接続している全ての仮想ネットワークアダプターを削除する
- ホストOSが使用する仮想ネットワークアダプターを削除する
Remove-VMNetworkAdapterコマンドレットとは?
仮想ネットワークアダプターは、仮想マシンがネットワークに接続するための必須機能です。仮想ネットワークアダプターは仮想化されたデバイスなので、必要に応じて瞬時に、また簡単に増やすことができます。この点が物理コンピュータの世界と大きく違うところでしょう。
簡単に追加できるものの、増えすぎた仮想ネットワークアダプターはトラブルの原因になる可能性を秘めているため、使用しなくなったらすぐに削除するのが賢明といえます。
GUI(グラフィカルユーザーインタフェース)ツールである「Hyper-Vマネージャー」であれば目視で確認しながら削除が可能ですが、仮想スイッチを削除するなど、規模の大きなネットワーク構成変更の際、その仮想スイッチに接続していた複数の仮想マシンの仮想ネットワークアダプターを削除したいときなどは、Hyper-Vマネージャーではなく、Windows PowerShellでの作業が最適といえます。
Remove-VMNetworkAdapterは、仮想マシンに接続された仮想ネットワークアダプターを削除するコマンドレットです。
他の仮想ネットワークアダプター系のコマンドレット同様、本連載第135回で紹介した「Get-VMNetworkAdapter」コマンドレットを使用して抽出し、Remove-VMNetworkAdapterコマンドレットにパイプ(|)でつないで削除する、という便利な使い方もできます。
【注】本コマンドレットは「Windows PowerShell用Hyper-Vモジュール」に含まれるコマンドレットとなります。GUIの「Windowsの機能の有効化」や「役割と機能の追加」からHyper-Vを有効化するか、PowerShellから「Enable-WindowsOptionalFeature」コマンドレットを使用して有効化します。
Remove-VMNetworkAdapterの主なオプション
オプション | 意味 |
---|---|
-VMName | 仮想マシン名を指定する。-Allオプションおよび-ManagementOSオプション指定時のみ、省略可能 |
-Name | 削除したい仮想ネットワークアダプターを指定する。省略可能 |
-ManagementOS | ホストOS用の仮想ネットワークアダプターを取得したい場合に指定する。省略可能 |
-SwitchName | 指定した仮想スイッチに接続されている仮想ネットワークアダプターを削除したい場合に、仮想スイッチ名を指定する。-ManagementOSオプションとのみ併用可能。省略可能 |
-ComputerName | リモートのHyper-Vホストの仮想ネットワークアダプターを削除する場合にコンピュータ名を指定する。省略可能 |
Remove-VMNetworkAdapterコマンドレットの注意事項
Remove-VMNetworkAdapterコマンドレットは削除系のコマンドレットですが、実行時に確認プロンプトが挿入されません。
したがって、コマンドレット実行と同時に仮想ネットワークアダプターが即座に削除されてしまうため、指定ミスなどには十分に注意してください。
仮想マシンの仮想ネットワークアダプターを削除する
必須オプションである「-VMName」で仮想マシン名を指定してRemove-VMNetworkAdapterコマンドレットを実行すると、指定した仮想マシンに接続された仮想ネットワークアダプターが削除されます(画面1)。なお、Remove-VMNetworkAdapterコマンドレットは管理者権限での実行が必要となります。
コマンドレット実行例
Remove-VMNetworkAdapter -VMName Test-VM01
画面1のGet-VMNetworkAdapterコマンドレットコマンドレット実行結果を見ると、IPアドレスが表示されているので、仮想マシンは電源オン状態(起動状態)です。Hyper-Vの第2世代仮想マシンでは電源オン状態でも仮想ネットワークアダプターを削除できますが、第1世代仮想マシンの場合はエラーで削除できません(画面2)。
特定の仮想スイッチに接続している全ての仮想ネットワークアダプターを削除する
仮想スイッチを削除したい場合、削除前に接続している仮想ネットワークアダプターを切断する、もしくは仮想ネットワークアダプターを削除した方が好ましいといえます。
仮想スイッチに接続されている状態であれば、Get-VMNetworkAdapterコマンドレットを使用してその仮想スイッチに接続した仮想ネットワークアダプターを抽出できるので、その結果をパイプ(|)でRemove-VMNetworkAdapterコマンドレットにつなぐことで、複数の仮想ネットワークアダプターを削除できます(画面3)。
コマンドレット実行例
Get-VMNetworkAdapter -All | where {$_.SwitchName -eq "Test vSwitch"} | Remove-VMNetworkAdapter
ホストOSが使用する仮想ネットワークアダプターを削除する
ホストOSが使用する仮想ネットワークアダプターを削除する場合は、Hyper-Vマネージャーからであれば、仮想スイッチの「プロパティ」を開いて「管理オペレーティングシステムにこのネットワークアダプターの共有を許可する」のチェックボックスを外す作業になりますが、Remove-VMNetworkAdapterコマンドレットの場合は「-ManagementOS」オプションを使用します(画面4)。
コマンドレット実行例
Remove-VMNetworkAdapter -ManagementOS
画面4のように「-ManagementOS」オプションのみの指定では、ホストOSの仮想ネットワークアダプターが複数ある場合は、仮想ネットワークアダプターが全て削除されてしまいます。
特定の仮想スイッチの仮想ネットワークアダプターのみを削除する必要がある場合は、「-SwitchName」オプションを併用します(画面5)。
コマンドレット実行例
Remove-VMNetworkAdapter -ManagementOS -SwitchName "Test vSwitch"
ただし、この「-SwitchName」オプションは「-ManagementOS」オプションとのみ併用可能である点に注意してください。
仮想マシンが使用する仮想ネットワークアダプターを抽出する場合は、前出の画面3のように「Where-Object」コマンドレット(Whereと省略可)を併用します。
筆者紹介
後藤 諭史(ごとう さとし)
株式会社ネットワールド所属。Microsoft MVP for Cloud and Datacenter Management(2012-2026)。現業の傍ら、コミュニティーイベントでの登壇や著作にてMicrosoftテクノロジーに関する技術情報の発信、共有を続けている。ネットワークやハードウェアといった物理層に近いところが大好きな、昔ながらのインフラ屋さん。得意技はケーブル整線。近著は『詳解! Windows Server仮想ネットワーク』(日経BP社)。
Copyright © ITmedia, Inc. All Rights Reserved.