Объект SWbemObjectSet

Объект SWbemObjectSet — это коллекция объектов SWbemObject . Дополнительные сведения см. в разделе "Доступ к коллекции". Этот объект не может быть создан вызовом CreateObject VBScript .

Объект SWbemObjectSet можно получить, вызвав любой из следующих методов или их асинхронные эквиваленты:

Примечание

Объект SWbemObjectSet не поддерживает необязательные методы добавления и удаления коллекций.

Примечание

Так как обратный вызов приемника может быть не возвращен на том же уровне проверки подлинности, что и клиент, рекомендуется использовать полусинхронную вместо асинхронного взаимодействия. Дополнительные сведения см. в разделе "Вызов метода".

Элементы

Объект SWbemObjectSet имеет следующие типы элементов:

Методы

Объект SWbemObjectSet имеет эти методы.

Метод Описание
Item Извлекает объект SWbemObject из коллекции. Это метод по умолчанию объекта.

Свойства

Объект SWbemObjectSet имеет эти свойства.

Свойство Тип доступа Описание
Count
Только для чтения
Количество элементов в коллекции.
Security_
Только для чтения
Используется для чтения или изменения параметров безопасности.

Remarks

SWbemObjectSet — это коллекция из нуля или более объектов SWbemObject. Каждый SWbemObject в SWbemObjectSet может представлять одну из двух вещей:

  • Экземпляр ресурса, управляемого WMI.
  • Экземпляр определения класса.

Чаще всего этот класс используется в WMI в качестве возвращаемого значения для вызова ExecQuery или InstancesOf , как описано в следующем примере кода:

strComputer = "."
Set objSWbemServices = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colServices = objSWbemServices.ExecQuery("SELECT State FROM Win32_Service")
For Each objService In colServices
    Wscript.Echo objService.Name, objService.State
Next

В большинстве случаев единственное, что вы когда-либо сделаете с SWbemObjectSet , — перечислить все объекты, содержащиеся в самой коллекции. Однако SWbemObjectSet включает число свойств, которое может быть полезно в скриптах системного администрирования. Как следует из названия, Count указывает количество элементов в коллекции. Например, этот скрипт извлекает коллекцию всех служб, установленных на компьютере, а затем повторяет общее количество найденных служб:

Дополнительные сведения об использовании этого класса см. в разделе "Перечисление WMI".

Примеры

В следующем примере кода VBScript показано, как обрабатываются коллекции SWbemObjectSet .

On Error Resume Next

Set Disks = GetObject("winmgmts:").InstancesOf ("CIM_LogicalDisk")

WScript.Echo "There are", Disks.Count, " Disks"

Set Disk = Disks("Win32_LogicalDisk.DeviceID=""C:""")
WScript.Echo Disk.Path_.Path

if Err <> 0 Then
 WScript.Echo Err.Description
 Err.Clear
End if

В следующем примере кода Perl показано, как обрабатываются коллекции SWbemObjectSet .

use strict;
use Win32::OLE;

my ($disks,$disk);

eval { $disks = Win32::OLE->GetObject("winmgmts:{impersonationLevel=impersonate}!\\\\.\\root\\cimv2")->
   InstancesOf("CIM_LogicalDisk"); };
unless($@)
{
 print "\nThere are ", $disks->{Count}, " Disks \n";

 eval { $disk = $disks->Item("Win32_LogicalDisk.DeviceID=\"C:\""); };
 unless($@)
 {
  print $disk->{Path_}->{Path}, "\n";
 }
 else
 {
  print STDERR Win32::OLE->LastError, "\n";
 }
}
else
{
 print STDERR Win32::OLE->LastError, "\n";
}

Требования

Требование Значение
Минимальная версия клиента
Windows Vista
Минимальная версия сервера
Windows Server 2008
Header
Wbemdisp.h
Библиотека типов
Wbemdisp.tlb
DLL
Wbemdisp.dll
CLSID
CLSID_SWbemObjectSet
IID
IID_ISWbemObjectSet

См. также

Скрипты объектов API