Объект SWbemObjectSet
Объект SWbemObjectSet — это коллекция объектов SWbemObject . Дополнительные сведения см. в разделе Доступ к коллекции. Этот объект не может быть создан вызовом CreateObject VBScript.
Объект SWbemObjectSet можно получить, вызвав любой из следующих методов или их асинхронных эквивалентов:
- SWbemObject.Associators_
- SWbemObject.Instances_
- SWbemObject.References_
- SWbemObject.Subclasses_
- SWbemServices.AssociatorsOf
- SWbemServices.ExecQuery
- SWbemServices.InstancesOf
- SWbemServices.ReferencesTo
- SWbemServices.SubclassesOf
Примечание
Объект SWbemObjectSet не поддерживает необязательные методы коллекции Add и Remove .
Примечание
Так как обратный вызов в приемник может быть возвращен не на том же уровне проверки подлинности, который требуется клиенту, рекомендуется использовать полусинхронный режим вместо асинхронного взаимодействия. Дополнительные сведения см. в разделе Вызов метода .
Элементы
Объект SWbemObjectSet имеет следующие типы элементов:
Методы
Объект SWbemObjectSet содержит следующие методы.
Метод | Описание |
---|---|
Item | Извлекает объект SWbemObject из коллекции. Это метод объекта по умолчанию. |
ItemIndex | Извлекает объект SWbemObject , связанный с указанным индексом, в коллекцию. |
Свойства
Объект SWbemObjectSet имеет следующие свойства.
Свойство | Тип доступа | Описание |
---|---|---|
Рассчитывать |
Только для чтения |
Количество элементов в коллекции. |
Безопасности_ |
Только для чтения |
Используется для чтения или изменения параметров безопасности. |
Комментарии
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, которое может быть полезно в скриптах администрирования системы. Как следует из названия, 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 |
Заголовок |
|
Библиотека типов |
|
DLL |
|
CLSID |
CLSID_SWbemObjectSet |
IID |
IID_ISWbemObjectSet |