Назад | Перейти на главную страницу

Удаленное подключение WMI objsWbemLocator.ConnectServer

У меня проблема при подключении к удаленным машинам, используя следующее:

Установите objWMIService = objSWbemLocator.ConnectServer _ (sIP, "root \ CIMV2", strUser, strPassword, "MS_409", "ntlmdomain:" + sDomain, 128)

проблема в том, что на некоторых машинах не происходит тайм-аут и процесс зависает.

Есть ли способ отменить соединение и продолжить со следующим ip? Я использую vbscript.

Спасибо, Сэм

это потому, что эти машины недоступны в сети? Можете ли вы запустить тест ping перед подключением к нему через WMI.

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

Попробуйте использовать

Set objWMIService = Nothing

прежде чем вернуться к следующему IP-адресу.

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

Пинг-тест ниже тоже хорош.