本連載は、PowerShellコマンドレットについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は「Set-VMSwitch」コマンドレットを解説します。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
本連載では、Windows PowerShellの基本的なコマンドレットについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、コンピュータ上で動作するHyper-Vの仮想スイッチの設定を変更する「Set-VMSwitch」コマンドレットです。
Hyper-Vで仮想マシンにネットワークサービスを提供する仮想スイッチですが、新規作成後に何かしら設定を変更したい場合もあるでしょう。手早く変更したい場合にはGUI(グラフィカルユーザーインタフェース)の管理ツールである「Hyper-Vマネージャー」を使用するのも選択肢の一つですが、複数台のHyper-Vホストの仮想スイッチを一斉に設定変更したい場合は、やはりPowerShellの出番といえます。
「Set-VMSwitch」は仮想スイッチの設定を変更するコマンドレットです。仮想スイッチを新規作成した際に指定した設定を変更することはもちろん、新作成時には設定できない項目を改めて設定することも可能です。
【注】Set-VMSwitchは「Windows PowerShell用Hyper-Vモジュール」に含まれるコマンドレットです。GUIツールの「Windowsの機能の有効化」や「役割と機能の追加」からHyper-Vを有効化するか、Windows PowerShellで「Enable-WindowsOptionalFeature」コマンドレットを実行して有効化します。
オプション | 意味 |
---|---|
-ComputerName | リモートのHyper-Vホストの仮想スイッチを設定変更する場合にコンピュータ名を指定する。省略可能 |
-Name | 設定変更する仮想スイッチの名前を指定する |
-NetAdapterName | 外部ネットワーク接続に変更する際、外部ネットワーク接続用の物理ネットワークアダプター名を指定する。省略可能 |
-NetAdapterInterfaceDescription | 外部ネットワーク接続に変更する際、外部ネットワーク接続用の物理ネットワークアダプターのデバイス名を指定する。省略可能 |
-SwitchType | 外部ネットワーク接続以外のネットワーク接続に設定を変更する際、タイプ(Internal〈内部〉/Private〈プライベート〉)を指定する。省略可能 |
-AllowManagementOS | 管理パーティションとネットワークアダプターを共有するかどうかを指定する。省略可能 |
-DefaultFlowMinimumBandwidthAbsolute | 最小帯域幅に関する絶対値の既定値を設定する。省略可能 |
-DefaultFlowMinimumBandwidthWeight | 最小帯域幅に関する重み付けの既定値を設定する。省略可能 |
仮想スイッチを新規作成する際には、接続するネットワークに応じて「外部ネットワーク接続」「内部ネットワーク接続」「プライベートネットワーク接続」の3種類から選択します。仮想スイッチ作成後に接続先を変更する場合に、Set-VMSwitchコマンドレットを使用します。
例えば、外部ネットワーク接続仮想スイッチとして作成した仮想スイッチを、内部ネットワーク接続仮想スイッチに変更したい場合は、「-SwitchType」オプションを使用します(画面1)。なお、Set-VMSwitchコマンドレットは管理者権限での実行が必要となります。
Set-VMSwitch -Name "External vSwitch" -SwitchType Internal
逆に、内部ネットワーク接続用スイッチを外部ネットワーク接続用スイッチに設定変更することも可能です。その場合は「-NetAdapterName」オプションもしくは「-NetAdapterInterfaceDescription」オプションを併用して、物理ネットワークアダプターを指定します(画面2)。
なお、本稿執筆時点(2025年2月末)では-SwitchTypeオプションで「External」を選択できますが、こちらは使用せずに物理ネットワークアダプターを指定するオプションを使用してください。-SwitchType」オプションを設定してしまうと、物理ネットワークアダプターを指定するオプションが使用できなくなります。
Set-VMSwitch -Name "External vSwitch" -NetAdapterName "イーサネット 4"
筆者の環境では、画面2のように内部ネットワーク接続仮想スイッチを外部ネットワーク接続スイッチに変更し、かつ「-AllowManagementOS」オプションで「$false」(共有しない)を設定しなかった場合、ネットワークアダプター共有のための仮想ネットワークアダプターが複数設定されてしまいました。
複数設定されてしまったネットワークアダプター共有のための仮想ネットワークアダプターを削除するには、次の項で解説する管理パーティションとネットワークアダプターの共有設定を実施します。
外部ネットワーク接続仮想スイッチを作成した際には、管理パーティション(ホストOS)と仮想スイッチを作成した物理ネットワークアダプターを共有するかどうかを設定できます。既定値では「共有する」となっているため、共有するための仮想ネットワークアダプターがホストOS上に作成されます。
この共有を解除するには、「-AllowManagementOS」オプションで「$false」(共有しない)を設定します(画面3)。
Set-VMSwitch -Name "External vSwitch" -AllowManagementOS $false
逆に、共有していないネットワークアダプターを管理パーティションと共有したい場合には-AllowManagementOSオプションで「$true」(共有する)を設定します(画面4)。
Set-VMSwitch -Name "External vSwitch" -AllowManagementOS $true
前回紹介した「New-VMSwitch」コマンドレットで仮想スイッチを新規作成する際、「-MinimumBandwidthMode」オプションを使用することで最小帯域幅の設定を絶対値指定か重み付け指定かのどちらかを選択可能であることを説明しました。
この最小帯域幅は、仮想マシンの各ネットワークアダプターで有効化および値を設定することになりますが、「デフォルトフロー(default flow)」と呼ばれる特別なグループに割り当てる最小帯域幅は仮想スイッチで設定された「DefaultFlowMinimumBandwidthAbsolute」もしくは「DefaultFlowMinimumBandwidthWeight」が適用されます。
これらの値の既定値は「Absolute」であれば物理ネットワークアダプターの帯域に対して自動的に10%の値、例えば10Gbpsのネットワークアダプターであれば「1000000000」(1Gbps)、2.5Gbpsのネットワークアダプターであれば「250000000」(250Mbps)に設定され、「Weight」であれば「1」が設定されます。
この値を明示的に変更したい場合は、仮想スイッチの設定が「Absolute」であれば「-DefaultFlowMinimumBandwidthAbsolute」オプション(画面5)を、仮想スイッチの設定が「Weight」であれば「-DefaultFlowMinimumBandwidthWeight」オプション(画面6)を使用します。
Set-VMSwitch -Name "External vSwitch" -DefaultFlowMinimumBandwidthAbsolute 500000000
Set-VMSwitch -Name "External vSwitch_02" -DefaultFlowMinimumBandwidthWeight 5
Microsoft MVP for Cloud and Datacenter Management(2012-2025)。現業の傍ら、コミュニティーイベントでの登壇や著作にてMicrosoftテクノロジーに関する技術情報の発信、共有を続けている。ネットワークやハードウェアといった物理層に近いところが大好きな、昔ながらのインフラ屋さん。得意技はケーブル整線。近著は『詳解! Windows Server仮想ネットワーク』(日経BP社)。
Copyright © ITmedia, Inc. All Rights Reserved.