【 Connect-VMNetworkAdapter 】コマンドレット――Hyper-V仮想マシンの仮想ネットワークアダプターを仮想スイッチに接続する:Windows PowerShell基本Tips(137)
本連載は、PowerShellコマンドレットについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は「Connect-VMNetworkAdapter」コマンドレットを解説します。
本連載では、Windows PowerShellの基本的なコマンドレットについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、「Hyper-V」の仮想マシンに接続された仮想ネットワークアダプターを仮想スイッチに接続する「Connect-VMNetworkAdapter」コマンドレットです。
目次
Connect-VMNetworkAdapterの概要 | 書式 | オプション
実行例
- 仮想マシンの仮想ネットワークアダプターを仮想スイッチに接続する
- 複数の仮想ネットワークアダプターを持つ仮想マシンで仮想ネットワークアダプターを仮想スイッチに接続する
- 複数の仮想マシンで仮想ネットワークアダプターを仮想スイッチに接続する
Connect-VMNetworkAdapterコマンドレットとは?
Hyper-Vで仮想マシンがネットワークに接続するには、仮想マシンに接続された仮想ネットワークアダプターを仮想スイッチに接続する必要があります。
仮想マシンに仮想ネットワークアダプターを接続するには、本連載第136回で紹介した「Add-VMNetworkAdapter」コマンドレットを使用して、仮想ネットワークアダプターを仮想マシンに追加します。その際、「-SwitchName」オプションで接続先の仮想スイッチを指定することで、仮想ネットワークアダプターを仮想スイッチに接続できます。
しかし、「-SwitchName」オプションを使用せずに仮想ネットワークアダプターを作成したり、仮想スイッチを削除するために仮想ネットワークアダプターの設定を「接続されていません」の状態に変更したりすると、その仮想マシンは仮想スイッチに接続されていないことになります。
また、今まで接続していた仮想スイッチから別の仮想スイッチに接続先を切り替えたいというニーズもあるでしょう。
Connect-VMNetworkAdapterは、仮想ネットワークアダプターを仮想スイッチに接続するためのコマンドレットです。ピンポイントのコマンドレットなので、利用する機会は少ないかもしれませんが、複数の仮想マシンの接続先スイッチを一度に切り替えたい場合などには重宝します。
【注】本コマンドレットは「Windows PowerShell用Hyper-Vモジュール」に含まれるコマンドレットとなります。GUI(グラフィカルユーザーインタフェース)の「Windowsの機能の有効化」や「役割と機能の追加」からHyper-Vを有効化するか、PowerShellから「Enable-WindowsOptionalFeature」コマンドレットを使用して有効化します。
Connect-VMNetworkAdapterコマンドレットの主なオプション
オプション | 意味 |
---|---|
-VMName | 接続処理を行いたい仮想マシン名を指定する |
-Name | 接続処理を行いたい仮想ネットワークアダプターの名前を指定する。省略可能 |
-VMNetworkAdapterName | -Nameオプションのエイリアスで同じように使用できる。省略可能 |
-SwitchName | 接続したい仮想スイッチの名前を指定する |
-ComputerName | リモートのHyper-Vホストの仮想マシンの仮想ネットワークアダプターを接続する場合にコンピュータ名を指定する。省略可能 |
仮想マシンの仮想ネットワークアダプターを仮想スイッチに接続する
接続処理をする「仮想マシン名」と「仮想スイッチ名」、2つの必須オプションを指定してConnect-VMNetworkAdapterコマンドレット実行することで、仮想マシンの仮想ネットワークアダプターを指定した仮想スイッチに接続できます(画面1)。なお、Connect-VMNetworkAdapterコマンドレットは管理者権限での実行が必要となります。
コマンドレット実行例
Connect-VMNetworkAdapter -VMName Test-VM02 -SwitchName "Private vSwitch"
画面1の実行例では、Connect-VMNetworkAdapterコマンドレットの実行前後で、本連載第135回で紹介した「Get-VMNetworkAdapter」コマンドレットで接続先仮想スイッチを確認しています。Connect-VMNetworkAdapterコマンドレットの実行前に接続していた仮想スイッチから指定した仮想スイッチに接続先が変更されていることが分かります。
このように、Connect-VMNetworkAdapterコマンドレットは、仮想ネットワークアダプターの現在の状態にかかわらず、接続先を指定された仮想スイッチに上書きするという動きになります。画面1の実行例の通り、仮想マシンの状態が起動中(電源オン)でもConnect-VMNetworkAdapterコマンドレットは実行可能です。
複数の仮想ネットワークアダプターを持つ仮想マシンで仮想ネットワークアダプターを仮想スイッチに接続する
前出の画面1の例では、仮想ネットワークアダプターが1つしか接続されていないため、「-Name」オプションで仮想ネットワークアダプターを指定しなくても接続先を変更できました。では、仮想ネットワークアダプターが2つ以上接続されている仮想マシンでConnect-VMNetworkAdapterコマンドレットを実行した場合はどうなるでしょうか。
以下の画面2は、仮想ネットワークアダプターが2つ接続されている仮想マシンに対し、「-Name」オプションで仮想ネットワークアダプターを指定せずにConnect-VMNetworkAdapterコマンドレットを実行したところです。接続されている全部の仮想ネットワークアダプターが指定した仮想スイッチに接続されてしまいました。
そのため、複数の仮想ネットワークアダプターが接続されている仮想マシンで、特定の仮想ネットワークアダプターの接続先を変更したい場合は、「-Name」オプションで仮想ネットワークアダプターを指定する必要があります(画面3)。
コマンドレット実行例
Connect-VMNetworkAdapter -VMName Test-VM07 -SwitchName "Private vSwitch" -Name BackendNIC
仮想ネットワークアダプター作成時に名前を指定しなかった場合、仮想ネットワークアダプターの名前は既定値である「ネットワーク アダプター」になります。
仮想ネットワークアダプター作成時には名前を付与することが望ましいですが、既定値で作成済みの場合は、仮想ネットワークアダプターを「Where-Object」(Whereと省略可)コマンドレットなどでMAC(Media Access Control)アドレスをキーにして仮想ネットワークアダプターを特定し、「|」(パイプ)でつないでConnect-VMNetworkAdapterコマンドレットを実行する、といった対応が必要になります(画面4)。
コマンドレット実行例
Get-VMNetworkAdapter -VMName Test-VM03 | Where {$_.MacAddress -eq "00155D0A2102"} | Connect-VMNetworkAdapter -SwitchName "Private vSwitch"
複数の仮想マシンで仮想ネットワークアダプターを仮想スイッチに接続する
複数の仮想マシンの仮想ネットワークアダプターを同じ仮想スイッチに接続したい場合は、「-VMName」オプションで仮想マシン名を複数指定することで1回のコマンドレット実行で同時に接続可能です(画面5)。「-VMName」オプションで複数の仮想マシン名を指定する場合は、カンマ(,)で区切ります。
コマンドレット実行例
Connect-VMNetworkAdapter -VMName Test-VM01,Test-VM02 -SwitchName "Private vSwitch"
筆者紹介
後藤 諭史(ごとう さとし)
株式会社ネットワールド所属。Microsoft MVP for Cloud and Datacenter Management(2012-2025)。現業の傍ら、コミュニティーイベントでの登壇や著作にてMicrosoftテクノロジーに関する技術情報の発信、共有を続けている。ネットワークやハードウェアといった物理層に近いところが大好きな、昔ながらのインフラ屋さん。得意技はケーブル整線。近著は『詳解! Windows Server仮想ネットワーク』(日経BP社)。
Copyright © ITmedia, Inc. All Rights Reserved.