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