Proprietà SWbemObjectSet.Count
Utilizzare la proprietà Count dell'oggetto SWbemObjectSet per determinare il numero di elementi presenti in un insieme SWbemObjectSet . Questa proprietà è di sola lettura.
Per una spiegazione di questa sintassi, vedere Convenzioni di documento per l'API scripting.
Questa proprietà è di sola lettura.
Sintassi
SWbemObjectSet.Count As Integer
Valore proprietà
Commenti
Una cosa da prestare attenzione quando si usa Count è che WMI non mantiene un numero in esecuzione del numero di elementi in una raccolta. Se si richiede Conteggio per una raccolta, WMI non può rispondere immediatamente con un numero; deve invece contare letteralmente gli elementi, enumerando l'intera raccolta. Per una raccolta che include relativamente pochi elementi, ad esempio i servizi, questa enumerazione richiede probabilmente meno di un secondo. Conteggio del numero di eventi in una raccolta di log eventi, tuttavia, può richiedere molto più tempo.
Si supponga quindi di voler visualizzare i valori delle proprietà per ogni evento nella raccolta. In tal caso, WMI dovrà enumerare l'intera raccolta una seconda volta.
Nota
Se si tenta di ottenere questa proprietà da un oggetto SWbemObjectSet restituito da un metodo in cui i flag specificati sono inclusi il flag wbemFlagForwardOnly, verrà visualizzato un errore wbemErrFailed.
Esempio
Per la maggior parte, l'unica cosa che si farà con un SWbemObjectSet è enumerare tutti gli oggetti contenuti nella raccolta stessa. Tuttavia, il conteggio dei conteggi che può essere utile nello scripting dell'amministrazione del sistema. Poiché il nome implica, Count indica il numero di elementi nella raccolta. Ad esempio, questo script recupera una raccolta di tutti i servizi installati in un computer e quindi ripete il numero totale di servizi trovati:
strComputer = "."
Set objSWbemServices = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colSWbemObjectSet = objSWbemServices.InstancesOf("Win32_Service")
Wscript.Echo "Services installed on target computer: " & colSWbemObjectSet.Count
Ciò che rende Count utile è che può indicare se un'istanza specifica è disponibile in un computer. Ad esempio, questo script recupera una raccolta di tutti i servizi in un computer con nome W3SVC. Se il conteggio è 0 (ed è valido per le raccolte non avere istanze), il servizio W3SVC non è installato nel computer.
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
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato |
Windows Vista |
Server minimo supportato |
Windows Server 2008 |
Intestazione |
|
Libreria dei tipi |
|
DLL |
|
CLSID |
CLSID_SWbemObjectSet |
IID |
IID_ISWbemObjectSet |