VBS(VBScript)によるWMIで情報を出力する時にエラーになる場合の対応方法(配列明示)を紹介
Wscript.Echoで出力する時に、配列番号まで明示して出力しないとエラーになる値も存在する。エラー内容「Microsoft VBScript 実行時エラー: 型が一致しません。」
サンプルソース
(入力:cscript)
Dim qu,cl,swbe,service,sms1,arr,ub,x
Set swbe = WScript.CreateObject("WbemScripting.SWbemLocator")
Set service = swbe.ConnectServer
Set qu = service.ExecQuery("Select * From Win32_NetworkAdapterConfiguration where IPEnabled='true'")
For Each cl In qu
sms1 = cl.IPAddress
arr = IsArray(sms1)
if arr = 0 then
Wscript.Echo "IPAddress:" & sms1
Wscript.Echo
elseif arr = -1 then
ub = UBound(sms1)
For x = 0 to ub
Wscript.Echo "IPAddress:" & sms1(x)
Wscript.Echo
Next
end if
Next
(出力)
IPAddress:192.168.1.2
IPAddress:fe80::413b:6747:aa04:1f69