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 |
|
Bibliothèque de types |
|
DLL |
|
CLSID |
CLSID_SWbemObjectSet |
IID |
IID_ISWbemObjectSet |