NICのネットワークカテゴリをPrivate networkに変更する方法

複数のNICを持っているVMにおいて,SANトラフィックなどに使うNICをPrivate networkに設定したいことがあると思います

しかし,デフォルトでは,Public networkになっています。

そこで,下記のコマンドをPowershellで流すと,Public networkになっているすべてのNICをPrivate networkに変更することができます。

すべてのNICをPrivate networkに変更するPowershell

Powershellを管理者権限で立ち上げて,下記のコマンドをペーストします。

Set-ExecutionPolicy UnRestricted 
$nwcon = [Activator]::CreateInstance([Type]::GetTypeFromCLSID([Guid]“{DCB00C01-570F-4A9B-8D69-199FDBA5723B}”)) 

$res = $nwcon.GetNetworkConnections() 
$res | % {if ($_.GetNetwork().GetCategory() -eq "0") {$_.GetNetwork().SetCategory(1)}} 

DCB00C01-570F-4A9B-8D69-199FDBA5723Bとは?

DCB00C01-570F-4A9B-8D69-199FDBA5723Bとは,WindowsのクラスID(CLSID)の一つです。

このクラスIDは,レジストリの中で定義されており,特定のプログラムに対応しています。

クラスIDの子要素として含まれている値の中から,特定のプログラムのDLLのパスを取得することができ,DLLをロードすることができます。

今回の場合は,ネットワークの一覧を呼び出すためのクラスIDであるDCB00C01-570F-4A9B-8D69-199FDBA5723Bを指定しています。

その後,GetCategory()で取得できる値が0であれば,Public networkということですので,それを1に書き換えることで,Private networkに変更しています。

0: Public network
1: Private network
2: Authenticated network

以上,複数のNICを持っているVMにおいて,すべてのPublic networkネットワークをPrivate networkに変更する方法でした。

コメント