Propriété SWbemObjectSet. Count

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

Pour 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é

Remarques

L’une des points à prendre en compte lors de l’utilisation de Count est que WMI ne continue pas à s’exécuter avec le nombre d’éléments d’une collection. Si vous demandez un nombre pour une collection, WMI ne peut pas répondre instantanément avec un chiffre ; au lieu de cela, il doit littéralement compter les éléments, en énumérant l’ensemble de la collection. Pour une collection qui a relativement peu d’éléments, tels que des services, cette énumération prend probablement moins d’une seconde. Toutefois, le nombre d’événements dans une collection de journaux des événements peut prendre beaucoup plus de temps.

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

Notes

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

Exemples

Pour l’essentiel, la seule chose que vous feriez avec une SWbemObjectSet est d’énumérer tous les objets contenus dans la collection elle-même. Toutefois, le nombre de nombres qui peut être utile dans les scripts d’administration de système. Comme son nom l’indique, count indique le nombre d’éléments dans la collection. Par exemple, ce script récupère 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 le nombre utile, c’est qu’il peut vous indiquer si une instance spécifique est disponible sur un ordinateur. Par exemple, ce script récupère une collection de tous les services sur un ordinateur portant le nom W3SVC. Si le nombre est égal à 0 (et qu’il est valide pour les collections qui n’ont pas d’instances), 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

Configuration requise

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