SWbemObjectSet 对象
SWbemObjectSet 对象是 SWbemObject 对象的集合。 有关详细信息,请参阅访问集合。 此对象不能由 VBScript CreateObject 调用创建。
可以通过调用以下任一方法或其异步等效项来获取 SWbemObjectSet 对象:
- SWbemObject.Associators_
- SWbemObject.Instances_
- SWbemObject.References_
- SWbemObject.Subclasses_
- SWbemServices.AssociatorsOf
- SWbemServices.ExecQuery
- SWbemServices.InstancesOf
- SWbemServices.ReferencesTo
- SWbemServices.SubclassesOf
注意
SWbemObjectSet 对象不支持可选的 Add 和 Remove 集合方法。
注意
由于可能不会以客户端要求的相同身份验证级别返回对接收器的回调,因此建议使用半同步通信而不是异步通信。 有关详细信息,请参阅调用方法。
成员
SWbemObjectSet 对象具有以下类型的成员:
方法
SWbemObjectSet 对象具有这些方法。
方法 | 说明 |
---|---|
项目 | 从集合中检索 SWbemObject 对象。 这是此对象的默认方法。 |
ItemIndex | 将与指定索引关联的 SWbemObject 对象检索到集合中。 |
属性
SWbemObjectSet 对象具有以下属性。
属性 | 访问类型 | 说明 |
---|---|---|
计数 |
只读 |
集合中项的数目。 |
Security_ |
只读 |
用于读取或更改安全设置。 |
备注
SWbemObjectSet 是零个或多个 SWbemObject 对象的集合。 SWbemObjectSet 中的每个 SWbemObject 都可以表示以下两项之一:
- 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 |