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 Skripterstellungs-API.

Diese Eigenschaft ist schreibgeschützt.

Syntax

SWbemObjectSet.Count As Integer

Eigenschaftswert

Hinweise

Wenn Sie Count verwenden, müssen Sie darauf achten, dass WMI nicht die Anzahl der Elemente in einer Auflistung aktiv hält. Wenn Sie Anzahl für eine Sammlung anfordern, kann WMI nicht sofort mit einer Zahl antworten. Stattdessen muss er die Elemente wörtlich zählen und die gesamte Auflistung aufzählen. Für eine Auflistung mit relativ wenigen Elementen, z. B. Diensten, dauert diese Enumeration 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. In diesem Falle muss WMI die gesamte Sammlung 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 das Flag wbemFlagForwardOnly enthalten, erhalten Sie einen wbemErrFailed-Fehler.

Beispiele

In den meisten Teilen werden Sie mit einem SWbemObjectSet nur alle Objekte auflisten, die in der Auflistung selbst enthalten sind. Die Anzahl der Zähler, die bei der Skripterstellung für die Systemverwaltung nützlich sein kann. Wie der Name schon sagt, gibt Count die Anzahl der Elemente in der Auflistung an. Dieses Skript ruft z. B. eine Sammlung aller auf einem Computer installierten Dienste ab und gibt dann die Gesamtzahl der gefundenen Dienste wieder:

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

Dies macht Count nützlich, da 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 count gleich 0 (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