Get-VMNetworkAdapterコマンドレット――Hyper-V仮想マシンの仮想ネットワークアダプター情報を取得する:Windows PowerShell基本Tips(135)
本連載は、PowerShellコマンドレットについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は「Get-VMNetworkAdapter」コマンドレットを解説します。
本連載では、Windows PowerShellの基本的なコマンドレットについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、Hyper-Vの仮想マシンに接続された仮想ネットワークアダプターの情報を取得する「Get-VMNetworkAdapter」コマンドレットです。
Get-VMNetworkAdapterコマンドレットとは?
Hyper-Vで仮想マシンに対してネットワークサービスを提供するには、Hyper-Vホストで仮想スイッチを作成して物理ネットワークアダプターを接続することで、仮想スイッチに接続された仮想マシンが物理ネットワーク上のノードと通信可能になることは、これまでの仮想スイッチ関連コマンドレットの回でも繰り返し説明してきました。
物理ネットワークの世界でも、物理スイッチと物理ネットワークアダプターがあるように、仮想ネットワークでも仮想スイッチと仮想ネットワークアダプターがあります。今回紹介するGet-VMNetworkAdapterは、仮想マシンに設定されている仮想ネットワークアダプターの情報を取得するコマンドレットになります。
仮想マシンのOS上からネットワークアダプターの情報を参照する場合は、本連載第33回で紹介した「Get-NetAdapter」コマンドレットを使用しますが、Hyper-Vホスト側から仮想ネットワークアダプターを参照する場合は今回のGet-VMNetworkAdapterコマンドレットを使用します。
Get-VMNetworkAdapterコマンドレットは、仮想マシンのネットワーク管理で多用するため、Hyper-Vによる仮想化基盤を管理する場合には押さえておきたいコマンドレットです。
【注】本コマンドレットは「Windows PowerShell用Hyper-Vモジュール」に含まれるコマンドレットとなります。GUI(グラフィカルユーザーインタフェース)の「Windowsの機能の有効化」や「役割と機能の追加」からHyper-Vを有効化するか、PowerShellから「Enable-WindowsOptionalFeature」コマンドレットを使用して有効化します。
Get-VMNetworkAdapterコマンドレットの主なオプション
オプション | 意味 |
---|---|
-VMName | 仮想マシン名を指定する。-Allオプションおよび-ManagementOSオプション指定時のみ省略可能 |
-Name | 取得したい仮想ネットワークアダプターを指定する。省略可能 |
-VMNetworkAdapterName | -Nameオプションのエイリアスで同じように使用可能。省略可能 |
-ManagementOS | ホストOS用の仮想ネットワークアダプターを取得したい場合に指定する。省略可能 |
-SwitchName | 指定した仮想スイッチに接続されている仮想ネットワークアダプターを取得したい場合に仮想スイッチ名を指定する。-ManagementOSオプションとのみ併用可能。省略可能 |
-All | Hyper-Vホスト上の全て仮想ネットワークアダプターを取得したい場合に指定する。省略可能 |
-ComputerName | リモートのHyper-Vホストの仮想ネットワークアダプター情報を取得する場合にコンピュータ名を指定する。省略可能 |
仮想マシンの仮想ネットワークアダプターを取得する
必須オプションである「-VMName」で仮想マシン名を指定してGet-VMNetworkAdapterコマンドレットを実行すると、指定した仮想マシンに接続された仮想ネットワークアダプターを取得します(画面1)。なお、Get-VMNetworkAdapterコマンドレットは管理者権限での実行が必要となります。
コマンドレット実行例
Get-VMNetworkAdapter -VMName Gen2-VM
接続されている仮想スイッチやMAC(Media Access Control)アドレス、現在のステータスの他、取得できる場合はIPアドレスが表示されます。さらに詳細な情報を取得したい場合には、「|(パイプ)」で「Format-List」コマンドレット(「FL」と省略可能)をつないで実行します(画面2)。
コマンドレット実行例
Get-VMNetworkAdapter -VMName Gen2-VM | fl
詳細情報では、画面1で表示されている基本的な情報の他、仮想ネットワークアダプターの設定も取得されます。以下の画面3は画面2を下にスクロールしたものですが、「vRSS」(Virtual Receive Side Scaling)や「VMQ」(Virtual Machine Queue)といったネットワークアダプターのハードウェアオフロード機能の有効/無効設定など、詳細な設定値も取得できます。
全ての仮想マシンの仮想ネットワークアダプターを取得する
必須オプションである「-VMName」の代わりに「-All」オプションを指定することで、実行したHyper-Vホスト上に存在する全ての仮想マシンの仮想ネットワークアダプターを取得できます(画面4)。
コマンドレット実行例
Get-VMNetworkAdapter -All
ホストOSが使用する仮想ネットワークアダプターを取得する
ホストOSが使用する仮想ネットワークアダプター、すなわちホストOSが仮想スイッチ経由で通信する際に使用される仮想ネットワークアダプターを取得する場合は「-ManagementOS」オプションを使用します(画面5)。
コマンドレット実行例
Get-VMNetworkAdapter -ManagementOS
ホストOSの仮想ネットワークアダプターが複数ある場合でも、画面5のように全て取得されます。スクリプト処理などで特定の仮想スイッチの仮想ネットワークアダプターのみを抽出する必要がある場合は、「-SwitchName」オプションを併用します(画面6)。
コマンドレット実行例
Get-VMNetworkAdapter -ManagementOS -SwitchName "Management vSwitch"
ただし、この-SwitchNameオプションは-ManagementOSオプションとのみ併用可能で、仮想マシンが使用する仮想ネットワークアダプターを取得する際は使用できません。そうした場合には「Where-Object」コマンドレット(Whereと省略可)を併用など、他の手段を考える必要があります(画面7)。
コマンドレット実行例
Get-VMNetworkAdapter -All | where {$_.SwitchName -eq "10G vSwitch"}
筆者紹介
後藤 諭史(ごとう さとし)
株式会社ネットワールド所属。Microsoft MVP for Cloud and Datacenter Management(2012-2025)。現業の傍ら、コミュニティーイベントでの登壇や著作にてMicrosoftテクノロジーに関する技術情報の発信、共有を続けている。ネットワークやハードウェアといった物理層に近いところが大好きな、昔ながらのインフラ屋さん。得意技はケーブル整線。近著は『詳解! Windows Server仮想ネットワーク』(日経BP社)。
Copyright © ITmedia, Inc. All Rights Reserved.