検索
連載

【 Rename-VMNetworkAdapter 】コマンドレット――Hyper-V仮想マシンの仮想ネットワークアダプター名を変更するWindows PowerShell基本Tips(139)

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

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

連載目次

 本連載では、Windows PowerShellの基本的なコマンドレットについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、「Hyper-V」の仮想マシンに接続された仮想ネットワークアダプターの名前を変更する「Rename-VMNetworkAdapter」コマンドレットです。

Rename-VMNetworkAdapterコマンドレットとは?

 Hyper-Vで仮想マシンを作成する場合、同時に仮想ネットワークアダプターを作成することで仮想マシンに接続できます。また、GUI(グラフィカルユーザーインタフェース)ツールの「Hyper-Vマネージャー」からも手軽に仮想ネットワークアダプターを作成し、仮想マシンの役割ごとに仮想ネットワークアダプターを接続することも簡単にできます。

 しかし、Hyper-Vマネージャーから仮想ネットワークアダプターを作成した場合、仮想ネットワークアダプターの名前は全てデフォルト(既定値)の「ネットワーク アダプター」(レガシーネットワークアダプターの場合は「レガシ ネットワーク アダプター」)に設定されます。こうなると、本連載第135回で紹介したGet-VMNetworkAdapter」コマンドレットで仮想ネットワークアダプターの一覧を取得した場合、画面1のように、同じ仮想ネットワークアダプターの名前が並ぶ、という状態になってしまいます。

ALT
画面1 既定値の名前が付与された場合、仮想ネットワークアダプターの見分けが難しい

 また、画面1の仮想マシン「Win2016」のように、「1台の仮想マシンに接続されている3つの仮想ネットワークアダプターの名前が全て同じ」という、運用管理上好ましくない状態が発生してしまいます。

 これは、本連載第138回のDisconnect-VMNetworkAdapter」コマンドレットの解説でも言及しましたが、仮想マシンに複数の仮想ネットワークアダプターが接続されている環境で、仮想ネットワークアダプターの名前が同一だと、コマンドレット実行時に“名前以外のキー”で仮想ネットワークアダプターを特定しなければならない場合が発生します。これは、運用管理上好ましい状態とはいえません。

 本連載第136回のAdd-VMNetworkAdapter」コマンドレットを使用して仮想ネットワークアダプターを作成する場合には、「-Name」オプションを併用することで既定値以外の名前を付けられます。

 しかし、本連載第119回のNew-VM」コマンドレットで「-SwitchName」オプションを併用して仮想マシンを作成したり、Hyper-Vマネージャーから仮想マシンを作成したりすると、仮想ネットワークアダプターの名前は全て既定値になってしまいます。その結果、画面1のような状況が生まれてしまします。

 今回紹介するRename-VMNetworkAdapterは、仮想マシンに設定されている仮想ネットワークアダプターの名前を変更するコマンドレットであり、既定値の「ネットワーク アダプター」から任意の名前に変更できます。

 運用管理という側面からは、仮想マシン全ての仮想ネットワークアダプター名が同じ、という状況は好ましいとはいえないので、ぜひ本コマンドレットを使用して、仮想ネットワークアダプターの名前を変更してください。

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


Rename-VMNetworkAdapterコマンドレットの書式

Rename-VMNetworkAdapter [オプション]


Rename-VMNetworkAdapterの主なオプション

オプション 意味
-VMName 仮想マシン名を指定する。-ManagementOSオプション指定時のみ、省略可能
-Name 現在の仮想ネットワークアダプター名を指定する。省略可能
-NewName 新しい仮想ネットワークアダプター名を指定する
-ManagementOS ホストOS用の仮想ネットワークアダプター名を変更したい場合に指定する。省略可能
-ComputerName リモートのHyper-Vホスト上の仮想マシンの仮想ネットワークアダプター名を変更する場合にコンピュータ名を指定する。省略可能

仮想マシンに接続されている仮想ネットワークアダプターの名前を変更する

 必須オプションである「-VMName」で仮想マシン名を指定し、新しい仮想ネットワークアダプターの名前を「-NewName」オプションで指定してRename-VMNetworkAdapterコマンドレットを実行することで、仮想ネットワークアダプターの名前を変更できます(画面2)。なお、Rename-VMNetworkAdapterコマンドレットは管理者権限での実行が必要となります。

コマンドレット実行例

Rename-VMNetworkAdapter -VMName Test-VM02 -NewName Test-VM02_NIC01

ALT
画面2 指定した仮想マシンに接続されている仮想ネットワークアダプターの名前を変更した

特定の仮想ネットワークアダプターの名前を変更する

 仮想マシンに接続されている仮想ネットワークアダプターが1つの場合は「-NewName」オプションだけでも問題ないのですが、複数の仮想ネットワークアダプターが接続されている仮想マシンに対して画面2のコマンドレットを実行した指定した場合は、全ての仮想ネットワークアダプターの名前が指定した名前に変更されてしまいます(画面3)。

ALT
画面3 複数の仮想ネットワークアダプターが接続されている場合、全ての仮想ネットワークアダプターが「-NewName」オプションで指定した名前に変更されてしまう

 この場合は「-Name」オプションで現在の仮想ネットワークアダプターの名前を指定することで、指定された仮想ネットワークアダプターだけの名前を変更できます(画面4)。

コマンドレット実行例

Rename-VMNetworkAdapter -VMName Test-VM04 -Name FrontNIC -NewName Test-VM04_NIC01

ALT
画面4 「-Name」オプションで現在の仮想ネットワークアダプターの名前を指定することで仮想ネットワークアダプターを特定し、名前を変更した

 画面4は仮想ネットワークアダプターの名前が異なっていたので「-Name」オプションを使用できましたが、複数の仮想ネットワークアダプターの名前が既定値の場合は「-Name」オプションは事実上使用できません。その場合は、Get-VMNetworkAdapterコマンドレットなど別の手法で仮想ネットワークアダプターを特定してから、名前を変更する必要があります(画面5)。

コマンドレット実行例

Get-VMNetworkAdapter -VMName Test-VM03 | where {$_.MacAddress -eq "00155D0A2102"} | Rename-VMNetworkAdapter -NewName Test-VM03_MIC01

ALT
画面5 「-Name」オプションで現在の仮想ネットワークアダプターの名前を指定することで仮想ネットワークアダプターを特定し、名前を変更した

 画面5では、仮想ネットワークアダプターを特定するためにGet-VMNetworkAdapterコマンドレットの実行結果をパイプ(|)で「Where-Object」(Whereと省略可)コマンドレットにつないでMAC(Media Access Control)アドレスを条件にして仮想ネットワークアダプターを特定し、さらにパイプでRename-VMNetworkAdapterコマンドレットにつないで名前を変更しています。

 Get-VMNetworkAdapterコマンドレットを実行している段階で仮想マシンなどが特定できているため、Rename-VMNetworkAdapterコマンドレット実行時には新しい仮想ネットワークアダプター名を指定するだけで問題ありません。


ホストOSが使用する仮想ネットワークアダプターの名前を変更する

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

コマンドレット実行例

Rename-VMNetworkAdapter -ManagementOS -NewName MGMT_NIC

ALT
画面6 ホストOSが使用する仮想ネットワークアダプターの名前を変更した

 あまり多くないシナリオだと思いますが、ホストOSが使用する仮想ネットワークアダプターが複数存在する場合は、仮想ネットワークアダプターを特定する必要があります。ホストOSが使用する仮想ネットワークアダプターは、仮想スイッチ名を引き継いで設定されています。従って、「-Name」オプションを利用することで仮想ネットワークアダプターを特定できます(画面7)。

コマンドレット実行例

Rename-VMNetworkAdapter -ManagementOS -Name "Test vSwitch" -NewName Test-MGMT-NIC

ALT
画面7 ホストOSが使用する仮想ネットワークアダプターが複数ある場合には「-Name」オプションを併用する

筆者紹介

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

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


Copyright © ITmedia, Inc. All Rights Reserved.