WMI でのネットワーク設定について


ひまわり  2006-08-11 04:49:53  No: 96248

お世話になっております。

過去ログを参照して、IPアドレスを変更する事が出来たのですが、
少し構文を帰ると変更できません。何が原因でしょうか。

[成功]
Dim X As New ManagementClass("Win32_NetworkAdapterConfiguration")
For Each mo As ManagementObject In X.GetInstances()
    Dim IP() As String = {"192.168.100.100"}
    Dim Mask() As String = {"255.255.255.0"}
    Dim Args() As Object = {IP, Mask}
    Dim r As Object = mo.InvokeMethod("EnableStatic", Args)
Next

[失敗]
Dim X As New Management Class"Win32_NetworkAdapterConfiguration")
Dim m As ManagementObject
Dim returnValue As ManagementObjectCollection

returnValue = X.GetInstances()
Dim IP() As String = {"192.168.100.100"}
Dim Mask() As String = {"255.255.255.0"}
Dim Args() As Object = {IP, Mask}
Dim r As Object = m.InvokeMethod("EnableStatic", Args)

最後の文で以下のメッセージが出ます。
'System.NullReferenceException' のハンドルされていない例外が CDSetting.exe で発生しました。

追加情報 : オブジェクト参照がオブジェクト インスタンスに設定されていません。

また、WMIプログラミングをする場合、
・.NET Framework クラス ライブラリ (System.Management) 
・Microsoft WMI Scripting V1.2 Library (SWbemObject)
の2通りの方法があるということでよろしいでしょうか。

何方かご教授お願い致します。
(頭がごっちゃごちゃになってきました)


KG  2006-08-11 06:09:26  No: 96249

>Dim X As New Management Class"Win32_NetworkAdapterConfiguration")

一行目からスペースがはいってたり最初の「(」が無かったりしてますが、、

#コピーしないで手打ちしての投稿かな orz


KG  2006-08-11 06:12:21  No: 96250

#途中で投稿してしまいました。すみません。

>returnValue = X.GetInstances()

でコレクションをreturnValueにセットしているのに
mにManagementObjectを渡さないまま

>Dim r As Object = m.InvokeMethod("EnableStatic", Args)

を実行しているからでは?


※返信する前に利用規約をご確認ください。








  このエントリーをはてなブックマークに追加