argius note

プログラミング関連

ipconfigが使えない環境でIPアドレスを知りたい (WMIを使う)

小ネタです。ほぼ引用です。
Windows Management Instrumentation(WMI)を使って、ipconfigが権限が無くて使えない場合に、類似情報を参照する方法です。
WMIも権限が無かったら使えませんけどね。

環境

"$PSVersionTable"でPowerShellのバージョン情報を参照できます。


PowerShellの場合

C:\>powershell -Command "Get-WMIObject Win32_NetworkAdapterConfiguration"

DHCPEnabled      : False
IPAddress        :
DefaultIPGateway :
DNSDomain        :
ServiceName      : XXXX
Description      : (XXXX)
Index            : 1

(以下繰り返し)

整形の必要が無ければ、ワンライナーでOK。


VBSの場合

PowerShellが使えない場合、WMIが使えればVBSでもOKだと思います(環境が無いので未確認)。
実行すると、メッセージボックスが表示されます。

Set objWmi = GetObject("winmgmts:\\.\root\cimv2")
Set colItems = objWmi.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled=TRUE")
strMsg = ""
For Each objItem in colItems
  strMsg = strMsg & "ServiceName: " & objItem.ServiceName & ", IP Address: "
  For Each objAddress in objItem.IPAddress
    strMsg = strMsg & objAddress & " "
  Next
  strMsg = strMsg & vbNewLine
Next
msgbox strMsg

PowerShellをまともに?使ったのは初めて。