- - PR -
WMIでネットワーク設定を変更すると接続できなくなる
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 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