SWbemObjectSet.Count-Eigenschaft
Verwenden Sie die Count-Eigenschaft des SWbemObjectSet-Objekts, um zu ermitteln, wie viele Elemente sich in einer SWbemObjectSet-Auflistung befinden. Diese Eigenschaft ist schreibgeschützt.
Eine Erläuterung dieser Syntax finden Sie unter Dokumentkonventionen für die Skript-API.
Diese Eigenschaft ist schreibgeschützt.
Syntax
SWbemObjectSet.Count As Integer
Eigenschaftswert
Bemerkungen
Wenn Sie Count verwenden, sollten Sie unbedingt darauf achten, dass WMI keine fortlaufende Übersicht die Anzahl der Elemente in einer Auflistung führt. Wenn Sie Count für eine Auflistung anfordern, kann WMI nicht sofort mit einer Zahl antworten. Stattdessen müssen die Elemente buchstäblich gezählt werden, wobei die gesamte Auflistung aufgezählt wird. Bei einer 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 Ereignisprotokollauflistung kann jedoch erheblich länger dauern.
Angenommen, Sie möchten die Eigenschaftswerte für jedes Ereignis in der Auflistung anzeigen. Wenn dies der Fall ist, muss WMI die gesamte Auflistung ein zweites Mal aufzählen.
Hinweis
Wenn Sie versuchen, diese Eigenschaft von einem SWbemObjectSet-Objekt abzurufen, das von einer Methode zurückgegeben wird, bei der die angegebenen Flags das wbemFlagForwardOnly-Flag enthalten, erhalten Sie einen wbemErrFailed-Fehler.
Beispiele
In den meisten Fällen ist das einzige, was Sie mit einem SWbemObjectSet tun werden, das Aufzählen aller Objekte, die in der Auflistung selbst enthalten sind. Die Count-Anzahl kann jedoch bei der Skripterstellung für die Systemverwaltung nützlich sein. Wie der Name schon sagt, gibt Count die Anzahl der Elemente in der Auflistung an. Beispielsweise ruft dieses Skript 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
Count ist nützlich, da die Eigenschaft Ihnen mitteilen kann, ob eine bestimmte Instanz auf einem Computer verfügbar ist. Dieses Skript ruft beispielsweise eine Auflistung aller Dienste auf einem Computer ab, die den Namen W3SVC haben. Wenn count 0 ist (und es stimmt, dass Auflistungen keine Instanzen enthalten), 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 |
|
Typbibliothek |
|
DLL |
|
CLSID |
CLSID_SWbemObjectSet |
IID |
IID_ISWbemObjectSet |