Метод 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
Wbemdisp.h
Библиотека типов
Wbemdisp.tlb
DLL
Wbemdisp.dll
CLSID
CLSID_SWbemServices
IID
IID_ISWbemServices

См. также раздел

SWbemServices

SWbemObjectSet