Метод SWbemServices.InstancesOf
Метод InstancesOf объекта SWbemServices создает перечислитель, который возвращает экземпляры указанного класса в соответствии с заданными пользователем критериями выбора. Этот метод реализует простой запрос. Для более сложных запросов может потребоваться использование SWbemServices.ExecQuery.
Метод вызывается в полусинхронном режиме. Дополнительные сведения см. в разделе "Вызов метода".
Описание этого синтаксиса см. в разделе "Соглашения о документах" для API создания скриптов.
Синтаксис
objWbemObjectSet = .InstancesOf( _
ByVal strClass, _
[ ByVal iFlags ], _
[ ByVal objWbemNamedValueSet ] _
)
Параметры
-
strClass
-
Обязательный. Строка, содержащая имя класса, для которого нужны экземпляры. Этот параметр не может быть пустым.
-
iFlags [необязательно]
-
Этот параметр определяет, насколько подробно перечисление вызовов и если этот вызов возвращается немедленно. Значение по умолчанию для этого параметра — wbemFlagReturnImmediately. Этот параметр может принимать следующие значения.
-
wbemFlagForwardOnly (32 (0x20))
-
Вызывает возврат перечислителя только для пересылки. Перечислители только для пересылки обычно выполняются гораздо быстрее и используют меньше памяти, чем обычные перечислители, но не позволяют вызывать SWbemObject.Clone_.
-
wbemFlagBidirectional (0 (0x0))
-
Заставляет WMI сохранять указатели на объекты перечисления, пока клиент не выпустит перечислитель.
-
wbemFlagReturnImmediately (16 (0x10))
-
Значение по умолчанию для этого параметра. Этот флаг вызывает немедленное возвращение вызова.
-
wbemFlagReturnWhenComplete (0 (0x0))
-
Вызывает блокировку этого вызова до завершения запроса. Этот флаг вызывает метод в синхронном режиме.
-
wbemQueryFlagShallow (1 (0x1))
-
Заставляет перечисление включать только непосредственные подклассы указанного родительского класса.
-
wbemQueryFlagDeep (0 (0x0))
-
Значение по умолчанию для этого параметра. Это значение заставляет перечисление включать все классы в иерархию.
-
wbemFlagUseAmendedQualifiers (131072 (0x20000))
-
Заставляет WMI возвращать данные поправки класса с определением базового класса. Дополнительные сведения см. в разделе "Локализация сведений о классе WMI".
objWbemNamedValueSet [необязательно]
Как правило, это не определено. В противном случае это объект SWbemNamedValueSet , элементы которого представляют сведения о контексте, которые могут использоваться поставщиком, обслуживающим запрос. Поставщик, поддерживающий или требующий такой информации, должен документирование распознанных имен значений, типа данных значения, допустимых значений и семантики.
Возвращаемое значение
В случае успешного выполнения метод возвращает SWbemObjectSet.
Коды ошибок
После завершения метода InstancesOf объект Err может содержать один из кодов ошибок в следующем списке.
Примечание
Возвращаемый перечислитель с нулевыми элементами не является ошибкой.
-
wbemErrAccessDenied — 2147749891 (0x80041003)
-
Текущий пользователь не имеет разрешения на просмотр экземпляров указанного класса.
-
wbemErrFailed — 2147749889 (0x80041001)
-
Произошла неуказанная ошибка.
-
wbemErrInvalidClass — 2147749904 (0x80041010)
-
Указанный класс недопустим.
-
wbemErrInvalidParameter — 2147749896 (0x80041008)
-
Указанный параметр недопустим.
-
wbemErrOutOfMemory — 2147749894 (0x80041006)
-
Недостаточно памяти для завершения операции.
Комментарии
Метод InstancesOf работает только для объектов класса.
По умолчанию InstancesOf выполняет глубокое извлечение. То есть InstancesOf извлекает все экземпляры управляемого ресурса, который вы определяете, и все экземпляры всех подклассов, определенных под целевым классом. Например, следующий скрипт извлекает все ресурсы, моделироваемые всеми динамическими классами, определенными под CIM_Service абстрактным классом.
strComputer = "."
Set objSWbemServices = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colSWbemObjectSet = objSWbemServices.InstancesOf("CIM_Service")
For Each objSWbemObject In colSWbemObjectSet
Wscript.Echo "Object Path: " & objSWbemObject.Path_.Path
Next
При выполнении этого скрипта вы вернетесь к данным. Однако эти сведения не будут ограничены службами, установленными на компьютере. Вместо этого она будет включать сведения из всех дочерних классов CIM_Service, включая Win32_SystemDriver и Win32_ApplicationService.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента |
Windows Vista |
Минимальная версия сервера |
Windows Server 2008 |
Header |
|
Библиотека типов |
|
DLL |
|
CLSID |
CLSID_SWbemServices |
IID |
IID_ISWbemServices |