[PS1] デバイス名からNICの情報にアクセスする

2014年12月19日

 NIC の情報を GUI ではなくコマンドラインで取得/設定したい場合があります。

 ただし、ネットワーク名(下記画像だと "vEthernet …")ではなく、デバイス名(下記画像だと "Hyper-V 仮想イーサネット アダプター #2" )でアクセスしたい、という制約があるとします。

 Windows 8 以降の Powershell を使用する場合、NetTCPIP モジュールが追加されており、このモジュールを使うことで NIC の情報にアクセスできます。

$searchName = "Hyper-V 仮想イーサネット アダプター #2"
$na = Get-NetAdapter -InterfaceDescription $searchName
Get-NetIPAddress -ifIndex $na.ifIndex

 しかし、Windows 7 以前の場合、NetTCPIP モジュールが組み込めないため、この方法が使えません(Win8系の新機能)

 仕方がないので、WMI へのアクセスと netsh で実現します。

$searchName = "Hyper-V 仮想イーサネット アダプター #2"
$na = Get-WmiObject Win32_NetworkAdapter | ? {$_.Name -eq $searchName}
netsh interface ip show config $na.NetConnectionID

 wmi を参照しているのは、netsh ではデバイス名からネットワーク名を引くことができないからです。






カテゴリー: OS, PowerShell, Windows, WMI, 環境設定

Follow comments via the RSS Feed | Leave a comment | Trackback URL

コメントを投稿する

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)


«   »
 
Powered by Wordpress and MySQL. Theme by Shlomi Noach, openark.org