【 New-VMSwitch 】コマンドレット――Hyper-Vの仮想スイッチを新規作成するWindows PowerShell基本Tips(127)

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

» 2025年02月27日 05時00分 公開
[後藤諭史@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「Windows PowerShell基本Tips」のインデックス

連載目次

 本連載では、Windows PowerShellの基本的なコマンドレットについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、コンピュータ上で動作するHyper-Vの仮想スイッチを新規作成する「New-VMSwitch」コマンドレットです。

New-VMSwitchコマンドレットとは?

 Hyper-Vをはじめとするハードウェア仮想化技術では、CPUやメモリといったコンピュータの構成要素を仮想化して仮想マシンに提供します。ネットワークも例外ではなく、仮想マシンが接続する「ネットワークスイッチ」を用意することで、仮想マシンに対して物理ネットワークとの接続サービスを提供しています。

 「New-VMSwitch」は仮想マシンに提供するネットワークスイッチ、すなわち仮想スイッチをHyper-V上で新規作成するコマンドレットです。

 当然のことながら、仮想スイッチはGUI(グラフィカルユーザーインタフェース)の管理ツールである「Hyper-Vマネージャー」でも作成可能です。しかし、複数台のHyper-Vホストや、複数台からなるHyper-Vクラスタ内で統一した構成の仮想スイッチを作成するのであれば、PowerShellコマンドレットで自動化した方が問題が発生するリスクは抑えられるでしょう。そういった意味でも、Hyper-Vによる仮想化基盤を管理する場合には押さえておきたいコマンドレットです。

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

New-VMSwitchコマンドレットの書式

New-VMSwitch [オプション]

New-VMSwitchコマンドレットの主なオプション

オプション 意味
-ComputerName リモートHyper-Vホストに仮想スイッチを新規作成する場合にコンピュータ名を指定する。省略可能
-Name 新規作成する仮想スイッチの名前を指定する
-SwitchType 外部ネットワーク接続以外の仮想スイッチを作成する際にタイプ(Internal〈内部〉/Private〈プライベート〉)を指定する。省略可能
-AllowManagementOS 管理パーティションとネットワークアダプターを共有するかどうかを指定する。省略可能
-NetAdapterName 外部ネットワーク接続用の物理ネットワークアダプター名を指定する。「-NetAdapterInterfaceDescription」オプションまたは「-SwitchType」オプション使用時には省略可能
-NetAdapterInterfaceDescription 外部ネットワーク接続用の物理ネットワークアダプターのデバイス名を指定する。「-NetAdapterName」オプションまたは「-SwitchType」オプション使用時には省略可能
-MinimumBandwidthMode 仮想スイッチの最小帯域幅の指定方式(Absolute/Default/None/Weight)を指定する。省略可能
-EnableIov 仮想スイッチでシングルルートI/O仮想化(SR-IOV)を有効にするかどうかを指定する。省略可能
-EnableEmbeddedTeaming スイッチ埋め込みチーミング(Switch Embedded Teaming〈SET〉)を使用するかどうかを指定する。省略可能

仮想スイッチを新規作成する

 New-VMSwitchコマンドレットを必須オプションである「-Name」オプションと「-NetAdapterName」オプションだけを指定して実行すると、ローカルのHyper-V上に外部ネットワーク接続用の仮想スイッチを作成します(画面1)。なお、New-VMSwitchコマンドレットは管理者権限での実行が必要となります。

コマンドレット実行例

  1. New-VMSwitch -Name "External vSwitch" -NetAdapterName "イーサネット 2"
ALT 画面1 ローカルのHyper-V上に外部ネットワーク接続用仮想スイッチを新規作成した

 -NetAdapterNameオプションで指定するネットワークアダプター名は、画面1の通り、本連載第33回で紹介したGet-NetAdapter」コマンドレットで確認できます。

 新規作成した仮想スイッチは「Hyper-Vマネージャー」からはもちろん、本連載第124回で紹介したGet-VMSwitch」コマンドレットでも確認できます。今回はHyper-Vマネージャーから確認しますが、以下の画面2のような仮想スイッチが作成されます。

ALT 画面2 新規作成した仮想スイッチの詳細をHyper-Vマネージャーから確認した

 管理パーティションとネットワークアダプターを共有したくない場合は、「-AllowManagementOS」オプションを追加して「$false」を指定することで、ネットワークアダプターを共有しない仮想スイッチを作成できます(画面3)。

ALT 画面3 -AllowManagementOSオプションで「$false」を指定することで、ネットワークアダプターを共有しない仮想スイッチを作成できる

 「-NetAdapterInterfaceDescription」オプションを使用することで「Intel(R) PRO/1000 PT Dual Port Server Adapter」といったネットワークアダプターのデバイス名を指定して仮想スイッチを作成できますが(画面4)、コマンドレットが長くなる傾向があるので、-NetAdapterNameオプションの使用をお勧めします。

コマンドレット実行例

  1. New-VMSwitch -Name "External vSwitch" -NetAdapterInterfaceDescription "Intel(R) PRO/1000 PT Dual Port Server Adapter" -AllowManagementOS $false
ALT 画面4 「-NetAdapterInterfaceDescription」オプションでデバイス名を指定して外部ネットワーク接続用仮想スイッチを新規作成した

内部ネットワーク接続仮想スイッチ、プライベートネットワーク接続仮想スイッチを作成する

 New-VMSwitchコマンドレットは、既定では外部ネットワーク接続用仮想スイッチを作成しますが、「-SwitchType」オプションを併用して明示的に指定することで、内部ネットワーク接続仮想スイッチ、プライベートネットワーク接続仮想スイッチを作成できます(画面5)。内部ネットワーク接続仮想スイッチ、プライベートネットワーク接続仮想スイッチでは物理ネットワークアダプターを必要としないので-NetAdapterNameオプションや-NetAdapterInterfaceDescriptionオプションは不要となります。

コマンドレット実行例

  1. New-VMSwitch -Name "Internal vSwitch" -SwitchType Internal
ALT 画面5 -SwitchTypeオプションで「Internal」を指定し、内部ネットワーク接続仮想スイッチを作成した

 -SwitchTypeオプションで「Private」を指定すれば、プライベートネットワーク接続仮想スイッチを作成できます。


スイッチ埋め込みチーミング(SET)を使用した仮想スイッチを作成する

 Hyper-V環境において、物理ネットワーク接続を冗長化する場合は、「スイッチ埋め込みチーミング」(Switch Embedded Teaming〈SET〉)を使用します。SETが有効化された仮想スイッチを作成する場合は、「-EnableEmbeddedTeaming」オプションを併用します(画面6)。

コマンドレット実行例

  1. New-VMSwitch -Name "SET vSwitch" -NetAdapterName "イーサネット 2","イーサネット 3" -EnableEmbeddedTeaming $true -AllowManagementOS $false
ALT 画面6 -EnableEmbeddedTeamingオプションを使用して、ネットワーク接続が冗長化された仮想スイッチを作成した

 複数のネットワークアダプターを使用してSETを作成する場合は、-NetAdapterNameオプションでSETを構成する全てのネットワークアダプターを指定します。

 SETを有効化した仮想スイッチをHyper-Vマネージャーで確認すると、ネットワークアダプターを指定する箇所がグレーアウトされて設定変更不可となっています。このため、設定変更には別のコマンドレットを使用する必要があるので注意してください。


QoS設定を変更した仮想スイッチを作成する

 仮想マシンに接続した仮想ネットワークアダプターと仮想スイッチを組み合わせることで、ネットワークトラフィックのQoS(Quality of Service:サービスの品質)設定が可能です。前述の通り、仮想ネットワークアダプターとの組み合わせで実現するため、仮想スイッチ側でQoSを有効化する必要があります。

 仮想スイッチ側の設定は、「-MinimumBandwidthMode」オプションを使用して最小帯域幅の指定方式を指定します。

オプション 意味
Absolute 最小帯域幅を絶対値で指定可能にする。単位はbps
None 最小帯域幅制御を無効化する
Weight 帯域を割り当てる際の重み付けで指定可能とする。範囲は1~100

 実際の値は仮想マシンの仮想ネットワークアダプター側で設定しますが、仮想ネットワークアダプターでの指定は仮想スイッチで指定した方式にのっとって実施する必要があります(画面7)。

コマンドレット実行例

  1. New-VMSwitch -Name "External vSwitch" -NetAdapterName "イーサネット 2" -MinimumBandwidthMode Weight -AllowManagementOS $false
ALT 画面7 「-MinimumBandwidthMode」オプションでQoS設定をWeight(重み付け)とした仮想スイッチを作成した

 「None」を指定した場合は、その仮想スイッチに接続した仮想ネットワークアダプターでQoS設定を実施しても、エラーが発生して設定できないので注意が必要です。なお、-MinimumBandwidthModeオプションを使用しなかった場合は、既定値である「Absolute」が設定されます。


新規作成時にしか設定できないオプション

 「-EnableIov」は、仮想スイッチで「シングルルートI/O仮想化」(SR-IOV)を有効化し、仮想マシンのネットワークパフォーマンスを向上させるオプションです。

 -EnableIovオプションは仮想スイッチ新規作成時にのみ有効化することが可能で、仮想スイッチ作成後はGUIの設定画面からもグレーアウトして有効化できません。したがって、既存の仮想スイッチでSR-IOVを有効化したい場合は、既存の仮想スイッチをいったん削除した上で、同名の仮想スイッチを新規作成する必要があります。SR-IOVの詳細は、以下の公式ドキュメントを参照してください。

筆者紹介

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

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

Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

Server & Storage 險倅コ九Λ繝ウ繧ュ繝ウ繧ー

譛ャ譌・譛磯俣

注目のテーマ

4AI by @IT - AIを作り、動かし、守り、生かす
Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。