技術情報

【PowerShell】ネットワークアダプタの優先順位(バインド順)を変更する方法

こんにちは、Windows インフラエンジニア ばにゃです。

Set-NetIPInterface

本記事では、PowerShellを使用してWindows Server のネットワークアダプタ(NIC)の優先順位(バインド順)を変更する方法について解説します。

Windows Server 2012 の頃は、ネットワーク接続の「詳細設定」よりGUIから変更が可能でしたが、Windows Server 2016 以降では設定画面が削除されGUIからの変更ができなくなりました。

Windows Server 2016以降では、本記事で解説する方法で代替することが可能です。

結論として Set-NetIPInterface コマンドを使用することで設定可能です。

Set-NetIPInterface -InterfaceAlias <ネットワークアダプタ名> -InterfaceMetric <優先順位>

また、-InterfaceAlias の代わりに -InterfaceIndex を指定する方法でも可能です。

Set-NetIPInterface -InterfaceIndex <ネットワークアダプタID> -InterfaceMetric <優先順位>

もう少し詳細について知りたい方は以降に記載する内容も確認してください。

スポンサーリンク

前提となる環境

本記事では、以下のような環境を例として記載します。
この環境で私自身が実機動作確認済みの手順となります。

環境
  • Windows Server 2019
  • Windows Server 2016

ネットワークアダプタ 優先順位 設定変更方法

実際に設定変更を行う際の流れにそって説明します。

優先順位設定の確認

Get-NetIPInterface コマンドを実行して現在のネットワークアダプタの優先順位を確認します。

Get-NetIPInterface

以下のような結果が表示されます。

ifIndex InterfaceAlias AddressFamily NlMtu(Bytes) InterfaceMetric Dhcp      ConnectionState PolicyStore
------- -------------- ------------- ------------ --------------- ----      --------------- -----------
8       Ethernet1      IPv4                  1500              15  Disabled Connected       ActiveStore
3       Ethernet0      IPv4                  1500              15  Disabled Connected       ActiveStore

この場合、以下のような2つのネットワークアダプタが存在するという意味になります。

  • ifIndex:8、InterfaceAlias:Etnernet1、InterfaceMetric(優先順位):15
  • ifIndex:3、InterfaceAlias:Etnernet0、InterfaceMetric(優先順位):15

ifIndex はネットワークアダプタのID、InterfaceAlias はネットワークアダプタ名、InterfaceMetric はネットワークアダプタの優先順位を表しています。

つまり優先順位に差がない(同じ優先順位となっている)ネットワークアダプタが2つ存在している状態です。

ここからそれぞれのネットワークアダプタに優先順位の設定を行っていきます。

優先順位設定の変更

Set-NetIPInterface コマンドを実行してネットワークアダプタの優先順位を設定します。

さきほど確認した ifIndex:3、InterfaceAlias:Etnernet0 の優先順位を高くする場合、以下のようなコマンドを実行します。

InterfaceAlias で指定するパターンと InterfaceIndex で指定するパターン、2種類を記載していますが、どちらか1つを実行するだけで問題ありません。

Set-NetIPInterface -InterfaceAlias Etnernet0 -InterfaceMetric 1
Set-NetIPInterface -InterfaceIndex 3 -InterfaceMetric 1

これで ifIndex:3、InterfaceAlias:Etnernet0 のネットワークアダプタの InterfaceMetric (優先順位) が 1 となり、優先順位が高い状態となりました。

※InterfaceMetric は数字が小さいほうが優先順位が高い設定となります。

設定が反映されているかの確認

Get-NetIPInterface コマンドを実行して、設定が正しく反映されているかを確認します。

Get-NetIPInterface

以下のような結果が表示されていれば、設定は正しく反映されています。

ifIndex InterfaceAlias AddressFamily NlMtu(Bytes) InterfaceMetric Dhcp      ConnectionState PolicyStore
------- -------------- ------------- ------------ --------------- ----      --------------- -----------
8       Ethernet1      IPv4                  1500              15  Disabled Connected       ActiveStore
3       Ethernet0      IPv4                  1500               1  Disabled Connected       ActiveStore

ifIndex:3、InterfaceAlias:Etnernet0 の InterfaceMetric が 1、ifIndex:8、InterfaceAlias:Etnernet1 の InterfaceMetric が 15 となっていることがわかります。

設定としてはこれで完了です。

優先順位の数字が 1 と 15 というのがしっくりこなければ、ifIndex:8、InterfaceAlias:Etnernet1 のネットワークアダプタに対しても Set-NetIPInterface コマンドを実行して、優先順位が 1 ,2 という設定にしてもよいかと思います。

参考情報

Microsoft ドキュメント

Set-NetIPInterface コマンドについては、Microsoft の以下サイトも参考にしてください。

関連書籍

PowerShell 6.0 まで対応している PowerShell 関連の書籍です。
現状で 6.0 まで対応している数少ない書籍のため、PowerShell の学習におすすめです。

にほんブログ村 IT技術ブログへ
にほんブログ村


コメント