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物件具有這些方法。
方法 | 描述 |
---|---|
Item | 從集合擷取 SWbemObject 物件。 這是 物件的預設方法。 |
ItemIndex | 將與指定索引相關聯的 SWbemObject 物件擷取到集合中。 |
屬性
SWbemObjectSet物件具有這些屬性。
屬性 | 存取類型 | 描述 |
---|---|---|
計數 |
唯讀 |
集合中的項目數目 |
安全_ |
唯讀 |
用來讀取或變更安全性設定。 |
備註
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 |