Partager via


Propriété SWbemObjectSet.Count

Utilisez la propriété Count de l’objet SWbemObjectSet pour déterminer le nombre d’éléments d’une collection SWbemObjectSet. Cette propriété est en lecture seule.

Pour obtenir une explication de cette syntaxe, consultez Conventions de document pour l’API de script.

Cette propriété est en lecture seule.

Syntaxe

SWbemObjectSet.Count As Integer

Valeur de la propriété

Notes

Une chose à laquelle il faut faire attention lors de l'utilisation de Count est que WMI ne tient pas compte du nombre d'éléments d'une collection. Si vous demandez Count pour une collection, WMI ne peut pas répondre instantanément avec un nombre ; au lieu de cela, il doit littéralement compter les éléments, en énumérant la collection entière. Pour une collection ayant relativement peu d’éléments, comme des services, cette énumération prendra probablement moins d’une seconde. Toutefois, le comptage du nombre d’événements d’une collection de journaux des événements peut prendre beaucoup plus de temps.

Supposons ensuite que vous souhaitiez afficher les valeurs de propriété pour chaque événement de la collection. Dans ce cas, WMI devra énumérer la collection entière une deuxième fois.

Notes

Si vous tentez d’obtenir cette propriété à partir d’un objet SWbemObjectSet retourné à partir d’une méthode où les indicateurs spécifiés incluent l’indicateur wbemFlagForwardOnly, vous obtiendrez une erreur wbemErrFailed.

Exemples

La plupart du temps, la seule chose que vous allez faire avec un SWbemObjectSet sera d’énumérer tous les objets contenus dans une même collection. Cependant, la fonction Count peut être utile dans les scripts d'administration du système. Comme son nom l’indique, Count indique le nombre d’éléments dans une collection. Par exemple, ce script récupérera une collection de tous les services installés sur un ordinateur, puis renvoie le nombre total de services trouvés :

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

Ce qui rend Count utile, c’est qu’il peut vous indiquer si un instance spécifique est disponible sur un ordinateur. Par exemple, ce script récupère une collection de tous les services sur un ordinateur dont le nom est W3SVC. Si le nombre est 0 (et qu’il est valide pour les regroupements n’ayant aucune instance), cela signifie que le service W3SVC n’est pas installé sur l’ordinateur.

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

Spécifications

Condition requise Valeur
Client minimal pris en charge
Windows Vista
Serveur minimal pris en charge
Windows Server 2008
En-tête
Wbemdisp.h
Bibliothèque de types
Wbemdisp.tlb
DLL
Wbemdisp.dll
CLSID
CLSID_SWbemObjectSet
IID
IID_ISWbemObjectSet