Проверка существования объекта в SCCM с использованием vbScript

У меня есть список имен компьютеров, хранящихся в массиве vbscript, и мне нужно проверить, есть ли у них объект в SCCM или нет.

Я попытался использовать запрос, подобный следующему:set account = sQbemServices.ExecQuery("select * FROM SMS_R_System WHERE name = '" & testForName & "'"), чтобы просмотреть SCCM. Это работает нормально, пока имена компьютеров действительны, но как только оно достигает недопустимого имени, кажется, что оно останавливается. Я попытался вывести номер ошибки, но это всегда возвращает "0" и проверяет, является ли результат нулевым, но это не работает.

Это лучший способ проверить, существует ли компьютерный объект, и если да, может кто-нибудь сказать мне, что я делаю неправильно, пожалуйста? Если нет, любые указатели будут высоко оценены.

1 ответ

SWbemServices.ExecQuery обычно возвращает SWbemObjectSet, Если ваш запрос находит действительный компьютер, то accounts.Count должно быть 1 или больше, иначе 0. Например:

If (accounts.Count > 0) Then 
    WScript.Echo "Found Computer in SCCM"
Else
    WScript.Echo "Computer is not in SCCM"
End If

Для получения дополнительной информации о SWbemServices:

http://msdn.microsoft.com/en-us/library/windows/desktop/aa393866(v=vs.85).aspx

Другие вопросы по тегам