Swbemobjectset 搭配使用 Count 屬性

使用 swbemobjectset 搭配使用物件的 Count 屬性,判斷 swbemobjectset 搭配使用 集合中有多少個專案。 這是唯讀的屬性。

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

這個屬性是唯讀的。

語法

SWbemObjectSet.Count As Integer

屬性值

備註

使用 Count 時要特別注意的一點是,WMI 不會將集合中的專案數目維持在執行中的計數。 如果您要求集合的計數,WMI 無法立即以數位回應;相反地,它必須對專案進行計算,以列舉整個集合。 對於具有相當少專案的集合(例如服務),此列舉可能需要不到一秒。 不過,在事件記錄檔集合中計算事件數目可能需要更長的時間。

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

注意

如果您嘗試從方法傳回的 swbemobjectset 搭配使用 物件取得這個屬性,而該方法的指定旗標包含在 wbemFlagForwardOnly 旗標中,則您會收到 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

計數會很有用,因為它可以告訴您電腦上是否有特定的實例可供使用。 例如,此腳本會在名稱為 W3SVC 的電腦上,取得所有服務的集合。 如果計數為 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.tlb。h
類型程式庫
>Wbemdisp.tlb .tlb
DLL
Wbemdisp.dll
CLSID
CLSID _ swbemobjectset 搭配使用
IID
IID _ ISWbemObjectSet