【 Disconnect-VMNetworkAdapter 】コマンドレット――Hyper-V仮想マシンの仮想ネットワークアダプターを仮想スイッチから切断する:Windows PowerShell基本Tips(138)
本連載は、PowerShellコマンドレットについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は「Disconnect-VMNetworkAdapter」コマンドレットを解説します。
本連載では、Windows PowerShellの基本的なコマンドレットについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、仮想スイッチから「Hyper-V」仮想マシンの仮想ネットワークアダプターを切断する「Disconnect-VMNetworkAdapter」コマンドレットです。
目次
Disconnect-VMNetworkAdapterの概要 | 書式 | オプション
実行例
- 仮想マシンの仮想ネットワークアダプターを仮想スイッチから切断する
- 複数の仮想ネットワークアダプターを持つ仮想マシンで仮想ネットワークアダプターの仮想スイッチ接続を切断する
- Hyper-Vホスト上の仮想マシン全ての仮想スイッチ接続を切断する
Disconnect-VMNetworkAdapterコマンドレットとは?
物理ネットワークの世界ではケーブルを刺したり、抜いたりすることで、物理的にコンピュータをネットワークに接続したり、切り離したりできます。ネットワークからコンピュータを切断したい場合には、通信ケーブル(多くの場合イーサネットケーブル)をスイッチポートやネットワークアダプターから引き抜くことで、完全にネットワークから切り離すことが可能です。
仮想マシンの世界でも、同じように完全にネットワークから仮想マシンを切り離したい場合があります。想定されるシナリオとしては、仮想マシンがマルウェアなどに感染して他の仮想マシンに感染を広げる恐れがあるが、証跡を残すために仮想マシンのシャットダウンや削除は避けたい、といった状況です。
いわゆる物理ネットワークの「ケーブルを引き抜く」に相当する作業が、仮想スイッチからの切断であり、PowerShellコマンドレットではDisconnect-VMNetworkAdapterコマンドレットで実施します。
先ほどの想定シナリオは、かなりのレアケースとは思いますが、いざというときにGUI(グラフィカルユーザーインタフェース)ツールを使って対処するといった事態は避けたいものです。保険的な意味で、本コマンドレットを覚えておくとよいかもしれません。
【注】本コマンドレットは「Windows PowerShell用Hyper-Vモジュール」に含まれるコマンドレットとなります。GUIの「Windowsの機能の有効化」や「役割と機能の追加」からHyper-Vを有効化するか、PowerShellから「Enable-WindowsOptionalFeature」コマンドレットを使用して有効化します。
Disconnect-VMNetworkAdapterの主なオプション
オプション | 意味 |
---|---|
-VMName | 切断したい仮想マシン名を指定する |
-Name | 切断したい仮想ネットワークアダプターの名前を指定する。省略可能 |
-VMNetworkAdapterName | -Nameオプションのエイリアスで、同じように使用できる。省略可能 |
-ComputerName | リモートにあるHyper-Vホストの仮想マシンの仮想ネットワークアダプターを切断する場合にコンピュータ名を指定する。省略可能 |
仮想マシンの仮想ネットワークアダプターを仮想スイッチから切断する
切断処理をする仮想マシン名を指定してDisconnect-VMNetworkAdapterコマンドレット実行すると、仮想マシンの仮想ネットワークアダプターは仮想スイッチから切断されます(画面1)。なお、Disconnect-VMNetworkAdapterコマンドレットは管理者権限での実行が必要となります。
コマンドレット実行例
Disconnect-VMNetworkAdapter -VMName Test-VM01
Disconnect-VMNetworkAdapterコマンドレットは、仮想マシンの状態が起動中(電源オン)でも実行可能です。
複数の仮想ネットワークアダプターを持つ仮想マシンで仮想ネットワークアダプターの仮想スイッチ接続を切断する
前出の画面1は、仮想ネットワークアダプターが1つの仮想マシンでの実行結果です。しかし、仮想ネットワークアダプターが2つの仮想マシンに対して仮想マシン名のみを指定して実行した場合には、仮想マシンに接続された全ての仮想ネットワークアダプターの仮想スイッチ接続が切断されます(画面2)。
仮想ネットワークアダプターを指定して切断処理を行いたい場合は、仮想ネットワークアダプター名を指定する必要があります。仮想ネットワークアダプター名を指定する場合は、「-Name」オプションを使用します(画面3)。
コマンドレット実行例
Disconnect-VMNetworkAdapter -VMName Test-VM07 -Name FrontNIC
複数の仮想ネットワークアダプター名が既定値で設定されている場合、同じ名前が付与されているため「-Name」オプションは事実上使用できません。他の手段、例えばMAC(Media Access Control)アドレスを指定して仮想ネットワークアダプターを特定し、Disconnect-VMNetworkAdapterコマンドレットを実行する必要があります(画面4)。
コマンドレット実行例
Get-VMNetworkAdapter -VMName Test-VM03 | Where {$_.MacAddress -eq "00155D0A2102"} | Disconnect-VMNetworkAdapter
また、接続している仮想スイッチ名を「Where-Object」(Whereと省略可)コマンドレットで指定し、そこから仮想ネットワークアダプター特定して、Disconnect-VMNetworkAdapterコマンドレットに「|」(パイプ)でつなぐという方法もあります(画面5)。
コマンドレット実行例
Get-VMNetworkAdapter -VMName Test-VM03 | Where {$_.SwitchName -eq "Private vSwitch"} | Disconnect-VMNetworkAdapter
仮想ネットワークアダプターを操作するコマンドレットに共通した話となりますが、さまざまな抽出条件を設定して、本連載第135回で紹介した「Get-VMNetworkAdapter」コマンドレットで単一の仮想ネットワークアダプターを取得し、そのオブジェクトを操作系コマンドレットにつないでいくことで、単一の仮想ネットワークアダプターを操作することが可能になります。
従って、いかにしてGet-VMNetworkAdapterコマンドレットで単一の仮想ネットワークアダプターを特定するかを考えられるかが、操作系のコマンドレットを使いこなせるかに関わってくるといえます。
Hyper-Vホスト上の仮想マシン全ての仮想スイッチ接続を切断する
Hyper-Vホスト上にある全ての仮想マシンのネットワーク接続を切断したい場合は、全ての仮想マシンの仮想ネットワークアダプターを取得し、「|」(パイプ)でDisconnect-VMNetworkAdapterコマンドレットにつなぐことで実行可能です(画面6)。
コマンドレット実行例
Get-VM | Get-VMNetworkAdapter | Disconnect-VMNetworkAdapter
接続している仮想スイッチの名前や仮想ネットワークアダプターの名前を問わず、全ての仮想スイッチ接続を切断できるので、緊急時の全仮想マシンのネットワーク切断に利用できます。
筆者紹介
後藤 諭史(ごとう さとし)
株式会社ネットワールド所属。Microsoft MVP for Cloud and Datacenter Management(2012-2025)。現業の傍ら、コミュニティーイベントでの登壇や著作にてMicrosoftテクノロジーに関する技術情報の発信、共有を続けている。ネットワークやハードウェアといった物理層に近いところが大好きな、昔ながらのインフラ屋さん。得意技はケーブル整線。近著は『詳解! Windows Server仮想ネットワーク』(日経BP社)。
Copyright © ITmedia, Inc. All Rights Reserved.