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
Wbemdisp.h
Libreria dei tipi
Wbemdisp.tlb
DLL
Wbemdisp.dll
CLSID
CLSID_SWbemObjectSet
IID
IID_ISWbemObjectSet