Проверка существования объекта в 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