SWbemObjectSet 物件

SWbemObjectSet物件是SWbemObject物件的集合。 如需詳細資訊,請參閱 存取集合。 VBScript CreateObject 呼叫無法建立此物件。

您可以呼叫下列任一方法或其非同步對等專案,以取得 SWbemObjectSet 物件:

注意

SWbemObjectSet物件不支援選擇性的 AddRemove集合方法。

注意

由於回呼接收可能不會與用戶端所需的相同驗證層級傳回,因此建議您使用半同步處理而非非同步通訊。 如需詳細資訊,請參閱 呼叫方法

成員

SWbemObjectSet物件具有下列類型的成員:

方法

SWbemObjectSet物件具有這些方法。

方法 描述
Item 從集合擷取 SWbemObject 物件。 這是 物件的預設方法。
ItemIndex 將與指定索引相關聯的 SWbemObject 物件擷取到集合中。

屬性

SWbemObjectSet物件具有這些屬性。

屬性 存取類型 描述
計數
唯讀
集合中的項目數目
安全_
唯讀
用來讀取或變更安全性設定。

備註

SWbemObjectSet是零個或多個SWbemObject物件的集合。 SWbemObjectSet中的每個SWbemObject都可以代表兩件事之一:

  • WMI 管理資源的實例。
  • 類別定義的實例。

WMI 中最常見的這個類別用法是 ExecQueryInstancesOf 呼叫的傳回值,如下列程式碼範例所述:

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
標頭
Wbemdisp.h
類型程式庫
Wbemdisp.tlb
DLL
Wbemdisp.dll
CLSID
CLSID_SWbemObjectSet
IID
IID_ISWbemObjectSet

另請參閱

編寫 API 物件的腳本