Windowsは、接続されているNICに「ローカル エリア接続 xx」という名前を付けて管理をしますが、この名前付けはランダムであり、同じ構成のマシンを同時にインストールしてても違う名前が付いたりします。
通常は、インストール中に接続されている物理ポートに応じて名前を付けたり並び替えたりするのですが、複数のNICを有しているサーバ機では結構その作業が面倒です。Linuxの様にMACアドレスで特定するにも、インストール前に特定するのは難しいです。そこで、PCIバスの番号や機能などによりポートを特定して並び替えるPowerShellスクリプトを作ってみました。(実行には管理者権限で実行する必要があります)
function rename-nic($i, $j ,$k ,$x) { $newname = "$x" $location = "PCI bus $i, device $j, function $k" $location_jp = "PCI バス $i, デバイス $j, 機能 $k" $drvinfo = (Get-WmiObject Win32_PnPSignedDriver | Where-Object {$_.Location -eq $location -or $_.Location -eq $location_jp}).DeviceID $nic = Get-WmiObject Win32_NetworkAdapter | Where-Object {$_.PNPDeviceID -eq $drvinfo} $oldname = $nic.NetConnectionID if ($oldname -eq "$newname") { write-host "既に指定された名前になっています" } elseif ($newname -eq '') { write-host "新しい名前を指定して下さい" } elseif ($oldname -eq '') { write-host "指定されたバスにNICが見つかりません" } else { write-host "NIC名変更: $oldname => $newname" $nic.NetConnectionID = $newname $nic.Put() } } $model = (Get-WmiObject Win32_ComputerSystem).Model if ($model -eq "PRIMERGY RX200 S6 ") { write-host "Fujitsu PRIMERGY RX200 S6のNIC名を変更を実行します" rename-nic "1" "0" "0" "ローカルエリア接続1" rename-nic "1" "0" "1" "ローカルエリア接続2" rename-nic "4" "0" "0" "ローカルエリア接続3" rename-nic "4" "0" "1" "ローカルエリア接続4" rename-nic "4" "0" "2" "ローカルエリア接続5" rename-nic "4" "0" "3" "ローカルエリア接続6" rename-nic "3" "0" "3" "ローカルエリア接続7" rename-nic "3" "0" "2" "ローカルエリア接続8" rename-nic "3" "0" "1" "ローカルエリア接続9" rename-nic "3" "0" "0" "ローカルエリア接続10" }
サンプルとして、富士通の1UサーバにQUADポートの増設NICを2枚刺した物をベースに作りました。(PCIバスの3番と4番は片方がLPになっていて指す方向が逆なので機能番号が逆順になっています)
各マシンやNICごとに、rename-nic関数の引数を変えて行けば使い回しできそうですね。