SWbemObjectSet.Count-Eigenschaft

Verwenden Sie die Count-Eigenschaft des SWbemObjectSet-Objekts , um zu bestimmen, wie viele Elemente in einer SWbemObjectSet-Auflistung enthalten sind. Diese Eigenschaft ist schreibgeschützt.

Eine Erläuterung dieser Syntax finden Sie unter Dokumentkonventionen für die Skripting-API.

Diese Eigenschaft ist schreibgeschützt.

Syntax

SWbemObjectSet.Count As Integer

Eigenschaftswert

Hinweise

Eine Sache, die bei der Verwendung von Count vorsichtig ist, ist, dass WMI nicht die Anzahl der Elemente in einer Auflistung ausführt. Wenn Sie "Count" für eine Auflistung anfordern, kann WMI nicht sofort mit einer Zahl antworten; Stattdessen muss es buchstäblich die Elemente zählen, die die gesamte Auflistung aufzählen. Bei einer Auflistung mit relativ wenigen Elementen, z. B. Diensten, dauert diese Aufzählung wahrscheinlich weniger als eine Sekunde. Das Zählen der Anzahl von Ereignissen in einer Ereignisprotokollsammlung kann jedoch erheblich länger dauern.

Angenommen, Sie möchten die Eigenschaftswerte für jedes Ereignis in der Auflistung anzeigen. Wenn ja, muss WMI die gesamte Auflistung ein zweites Mal aufzählen.

Hinweis

Wenn Sie versuchen, diese Eigenschaft aus einem SWbemObjectSet-Objekt abzurufen, das von einer Methode zurückgegeben wird, in der die angegebenen Flags enthalten sind, wird ein wbemFlagForwardOnly-Flag angezeigt, wird ein wbemErrFailed-Fehler angezeigt.

Beispiele

Für den meisten Teil wird die einzige Sache, die Sie jemals mit einem SWbemObjectSet tun werden, alle Objekte aufzählen, die in der Auflistung selbst enthalten sind. Die Anzahl anzahl, die jedoch in der Systemverwaltungsskripterstellung nützlich sein kann. Wie der Name impliziert, informiert Count Sie über die Anzahl der Elemente in der Auflistung. Dieses Skript ruft beispielsweise eine Auflistung aller auf einem Computer installierten Dienste ab und gibt dann die Gesamtzahl der gefundenen Dienste an:

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

Was Die Anzahl nützlich macht, ist, dass sie Ihnen mitteilen kann, ob eine bestimmte Instanz auf einem Computer verfügbar ist. Dieses Skript ruft beispielsweise eine Auflistung aller Dienste auf einem Computer mit dem Namen W3SVC ab. Wenn die Anzahl 0 ist (und für Sammlungen ohne Instanzen gültig ist), bedeutet dies, dass der W3SVC-Dienst nicht auf dem Computer installiert ist.

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

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows Vista
Unterstützte Mindestversion (Server)
Windows Server 2008
Header
Wbemdisp.h
Typbibliothek
Wbemdisp.tlb
DLL
Wbemdisp.dll
CLSID
CLSID_SWbemObjectSet
IID
IID_ISWbemObjectSet