- PR -

WMIでネットワーク設定を変更すると接続できなくなる

1
投稿者投稿内容
ふりふり
会議室デビュー日: 2007/03/13
投稿数: 11
投稿日時: 2007-12-18 16:37
VS2005+VB.NETにて開発をしております。

パラメータに応じて、ネットワーク環境を切り替えるようなものを
作成しており、IP、ゲートウェイだけでなく、DNSサフィックスまで含めた
設定変更を行いたかったのでnetshコマンドではなく、
WMIを使って変更できるようにしてみました。

数回は問題なく変更できるのですが、4、5回連続で変更すると、
必ずネットワークに接続出来なくなる不具合が発生します。

デバックなどで確認すると、メソッド自体は実行されているのですが
変更が反映されないときがあるような感じです。

原因がお分かりになる方が、おられましたら
アドバイス頂けないでしょうか。

'----------------ここから
strComputer = "."
objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
colNetAdapters = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")

strIPAddress = Nothing
strSubnetMask = Nothing
strGateway = Nothing
strDNSDomainSuffix = Nothing

If Ch_no = 1 Then

strIPAddress = New Object() {"10.xx.xx.100"}
strSubnetMask = New Object() {"255.255.255.0"}
strGateway = New Object() {"10.xx.xx.1"}
strDNSDomainSuffix = New Object() {""}
StrDNSServers = New Object() {"111.111.111.111", "111.111.111.112"}

Else

strIPAddress = New Object() {"20.xx.xx.100"}
strSubnetMask = New Object() {"255.255.255.0"}
strGateway = New Object() {"20.xx.xx.1"}
strDNSDomainSuffix = New Object() {"abc.co.jp"}
StrDNSServers = New Object() {"222.222.222.222", "222.222.222.223"}

End If

strGatewaymetric = New Object() {1}
For Each objNetAdapter In colNetAdapters

errEnable = objNetAdapter.EnableStatic(strIPAddress, strSubnetMask)
errGateways = objNetAdapter.SetGateways(strGateway, strGatewaymetric)
ErrDNSDomainSuffix = objNetAdapter.SetDNSSuffixSearchOrder(strDNSDomainSuffix)
ErrDNSServers = objNetAdapter.SetDNSServerSearchOrder(StrDNSServers)

Next objNetAdapter

1

スキルアップ/キャリアアップ(JOB@IT)