kn007 发表于 2009-10-4 20:08:29

请教,怎么用$objWMIService.ExecQuery来自动获取IP及DNS

请教,怎么用$objWMIService.ExecQuery来自动获取IP及DNS,手动获取IP(即设置IP)的我会

kn007 发表于 2009-10-4 20:12:33

共享手动获取的源码


;~ $ConnectionName = 连接名
;~ $SetIPAddress =IP地址
;~ $SetSubnetmask = 子网掩码
;~ $SetGateway = 网关
;~ Dim $SetDns
;~ $SetDns = DNS1
;~ $SetDns = DNS2
      $objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2")
                $colItemName= $objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapter Where NetConnectionID='" & $ConnectionName & "'", "WQL", 0x30)
                For $objName In $colItemName
                        If $objName.NetConnectionID =$ConnectionName Then
                                $CardIndex=$objName.Index
                                ExitLoop
                        EndIf
                Next
                If $CardIndex =-1 Then
                                MsgBox(0,"错误",'找不到连接' )
                Else
                        $colItems = $objWMIService.ExecQuery ("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = TRUE And Index='" & $CardIndex & "'" , "WQL", _
                                                        $wbemFlagReturnImmediately + $wbemFlagForwardOnly)
                        If IsObj($colItems) Then
                                        For $objNetAdapter In $colItems
                                                        $objNetAdapter.EnableStatic ($SetIPAddress, $SetSubnetmask)
                                                        $objNetAdapter.SetGateways ($SetGateway)
                                                        $objNetAdapter.SetDNSServerSearchOrder ($SetDns)
                                        Next
                        EndIf
                Endif ji记得Global        $wbemFlagReturnImmediately         = 0x10, _                ;不要修改
                $wbemFlagForwardOnly                 = 0x20                         ;不要修改

kn007 发表于 2009-10-4 20:35:48

$objNetAdapter.EnableDHCP()
$objNetAdapter.SetDNSServerSearchOrder()

这样后
表面上是自动获取,实际也是,但读取子网掩码会等于255.0.0.0,郁闷,不是0.0.0.0,有没有解决法子?

kn007 发表于 2009-10-4 21:09:03

饿,自顶。可能有点难解决。。。

IP信息是由_GetNetworkNetInfo函数获取

kn007 发表于 2009-10-4 21:45:17

奶奶的,我马上就搞好au3多网卡不支持vpn版的修改mac

kn007 发表于 2009-10-4 22:31:32

哈,mac源码基本完成了。。。

只等上面的问题解决

kn007 发表于 2009-10-5 06:03:56

没人知道?画gui中。。。

kodin 发表于 2009-10-5 11:49:20

我也在搞MAC这块,呵呵!我用了ACN帮助里面的函数,自动获取的话,你可以试一下以下命令:netsh interface ip reset ip当然不会立即生效,需要重启电脑。

kodin 发表于 2009-10-5 11:53:56

补充一下,也可以尝试用ipconfig /renew一下看看效果。

kn007 发表于 2009-10-5 13:16:32

回楼上的,你所说的不行,不是不行,而是不适合我,我已经搞好了,mac也行了,就等我爸不在,去他的笔记本调试多网卡修改mac是否成功,ip的早已好了,2.0版本出炉了。。。

kn007 发表于 2009-10-5 16:41:05

我制作的mac修改器:http://www.autoitx.com/forum.php?mod=viewthread&tid=10178&page=1&fromuid=7644076#pid94717

FBWOLF 发表于 2009-10-17 17:54:16

版主你也有会人新问题,这个问题查查新版的UDF就可以!

bing614 发表于 2009-10-18 00:52:41

写注册表.         .

jonyzhr 发表于 2010-11-8 08:21:27

回复 1# kn007


    楼主请问如何使用wmi设置成自动获取IP
页: [1]
查看完整版本: 请教,怎么用$objWMIService.ExecQuery来自动获取IP及DNS