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

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

SWbemServices

SWbemObjectSet