検索
連載

Get-VMNetworkAdapterコマンドレット――Hyper-V仮想マシンの仮想ネットワークアダプター情報を取得するWindows PowerShell基本Tips(135)

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

PC用表示 関連情報
Share
Tweet
LINE
Hatena
「Windows PowerShell基本Tips」のインデックス

連載目次

 本連載では、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コマンドレットの書式

Get-VMNetworkAdapter [オプション]


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

ALT
画面1 指定した仮想マシンに接続されている仮想ネットワークアダプターを取得した

 接続されている仮想スイッチやMAC(Media Access Control)アドレス、現在のステータスの他、取得できる場合はIPアドレスが表示されます。さらに詳細な情報を取得したい場合には、「|(パイプ)」で「Format-List」コマンドレット(「FL」と省略可能)をつないで実行します(画面2)。

コマンドレット実行例

Get-VMNetworkAdapter -VMName Gen2-VM | fl

ALT
画面2 Format-Listコマンドレットを併用することで、詳細情報を取得できる

 詳細情報では、画面1で表示されている基本的な情報の他、仮想ネットワークアダプターの設定も取得されます。以下の画面3画面2を下にスクロールしたものですが、「vRSS」(Virtual Receive Side Scaling)や「VMQ」(Virtual Machine Queue)といったネットワークアダプターのハードウェアオフロード機能の有効/無効設定など、詳細な設定値も取得できます。

ALT
画面3 画面2の続きでハードウェア系の詳細設定も取得されている

全ての仮想マシンの仮想ネットワークアダプターを取得する

 必須オプションである「-VMName」の代わりに「-All」オプションを指定することで、実行したHyper-Vホスト上に存在する全ての仮想マシンの仮想ネットワークアダプターを取得できます(画面4)。

コマンドレット実行例

Get-VMNetworkAdapter -All

ALT
画面4 -Allオプションを使用することで、Hyper-Vホスト上に存在する全ての仮想マシンの仮想ネットワークアダプターを取得できる

ホストOSが使用する仮想ネットワークアダプターを取得する

 ホストOSが使用する仮想ネットワークアダプター、すなわちホストOSが仮想スイッチ経由で通信する際に使用される仮想ネットワークアダプターを取得する場合は「-ManagementOS」オプションを使用します(画面5)。

コマンドレット実行例

Get-VMNetworkAdapter -ManagementOS

ALT
画面5 -ManagementOSオプションを使用することでホストOSが使用する仮想ネットワークアダプターのみを取得できる

 ホストOSの仮想ネットワークアダプターが複数ある場合でも、画面5のように全て取得されます。スクリプト処理などで特定の仮想スイッチの仮想ネットワークアダプターのみを抽出する必要がある場合は、「-SwitchName」オプションを併用します(画面6)。

コマンドレット実行例

Get-VMNetworkAdapter -ManagementOS -SwitchName "Management vSwitch"

ALT
画面6 -SwitchNameオプションを併用することで、特定の仮想スイッチに接続されたホストOSの仮想ネットワークアダプターを取得した

 ただし、この-SwitchNameオプションは-ManagementOSオプションとのみ併用可能で、仮想マシンが使用する仮想ネットワークアダプターを取得する際は使用できません。そうした場合には「Where-Object」コマンドレット(Whereと省略可)を併用など、他の手段を考える必要があります(画面7)。

コマンドレット実行例

Get-VMNetworkAdapter -All | where {$_.SwitchName -eq "10G vSwitch"}

ALT
画面7 Where-Objectコマンドレットを併用して、特定の仮想スイッチに接続された仮想ネットワークアダプターのみを抽出できる

筆者紹介

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

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


Copyright © ITmedia, Inc. All Rights Reserved.