SWbemObjectSet.Count 屬性

使用SWbemObjectSet物件的Count屬性來判斷SWbemObjectSet集合中的專案數目。 這個屬性是唯讀的。

如需此語法的說明,請參閱 腳本 API 的檔慣例

這個屬性是唯讀的。

Syntax

SWbemObjectSet.Count As Integer

屬性值

備註

使用 Count 時要注意的一件事是 WMI 不會保留集合中的專案數目。 如果您要求集合的 Count,WMI 無法立即以數位回應;相反地,它必須以常值方式計算專案,並列舉整個集合。 對於具有相對較少專案的集合,例如服務,此列舉可能需要少於一秒。 不過,計算事件記錄檔集合中的事件數目可能需要相當長的時間。

然後假設您想要顯示集合中每個事件的屬性值。 如果是,WMI 必須再次列舉整個集合。

注意

如果您嘗試從從包含 wbemFlagForwardOnly 旗標的方法傳回 的 SWbemObjectSet 物件取得這個屬性,您將會收到 wbemErrFailed 錯誤。

範例

在大部分的情況下,您一定會使用 SWbemObjectSet 執行的唯一動作是列舉集合本身內含的所有物件。 不過,在系統管理腳本中很有用的計數計數。 如名稱所示,Count 會告訴您集合中的專案數。 例如,此腳本會擷取電腦上安裝的所有服務集合,然後回應找到的服務總數:

strComputer = "."
Set objSWbemServices = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colSWbemObjectSet = objSWbemServices.InstancesOf("Win32_Service")
Wscript.Echo "Services installed on target computer: " & colSWbemObjectSet.Count

Count 很有用的是,它可以告訴您電腦上是否有可用的特定實例。 例如,此腳本會擷取具有 Name W3SVC 之電腦上所有服務的集合。 如果 Count 為 0 (,而且集合沒有實例) 有效,這表示電腦上未安裝 W3SVC 服務。

strComputer = "."
Set objSWbemServices = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colSWbemObjectSet = objSWbemServices.ExecQuery _
    ("SELECT * FROM Win32_Service WHERE Name='w3svc'")
If colSWbemObjectSet.Count = 0 Then
    Wscript.Echo "W3SVC service is not installed on target computer."
Else
    For Each objSWbemObject In colSWbemObjectSet
        ' Perform task on World Wide Web Publishing service.
    Next
End If

規格需求

需求
最低支援的用戶端
Windows Vista
最低支援的伺服器
Windows Server 2008
標頭
Wbemdisp.h
類型程式庫
Wbemdisp.tlb
DLL
Wbemdisp.dll
CLSID
CLSID_SWbemObjectSet
IID
IID_ISWbemObjectSet