WMI 远程连接 objsWbemLocator.ConnectServer

WMI 远程连接 objsWbemLocator.ConnectServer

使用以下命令连接到远程计算机时遇到问题:

设置 objWMIService = objSWbemLocator.ConnectServer _ (sIP, "root\CIMV2", strUser, strPassword, "MS_409", "ntlmdomain:" + sDomain, 128)

问题是有些机器没有超时,进程挂起了。

有没有办法取消连接并继续使用下一个 IP?我正在使用 vbscript。

谢谢,山姆

答案1

尝试使用

Set objWMIService = Nothing

然后再循环回到下一个 IP 地址。

答案2

是不是因为这些机器在网络上不可用?您可以在通过 WMI 连接之前运行 ping 测试。

Function Ping(strComputer)
Dim objShell, boolCode
Set objShell = CreateObject("WScript.Shell")
boolCode = objShell.Run("Ping -n 1 -w 300 " & strComputer, 0, True)
If boolCode = 0 Then
    Ping = True
Else
    Ping = False
End If
End Function

答案3

On Error Resume Next
For each IP in IP_List
    Set objWMIService = objSWbemLocator.ConnectServer _ (sIP, "root\CIMV2", strUser, strPassword, "MS_409", "ntlmdomain:" + sDomain, 128)
    If Err.Number <> 0 Then 
        wscript.echo "Could not bind to WMI on " + sIP
    Else
         ' Insert code here 
    End If
Next

下面的 ping 测试也很好。

相关内容