Methode SWbemServices.InstancesOf

Die InstancesOf-Methode des SWbemServices-Objekts erstellt einen Enumerator, der die Instanzen einer angegebenen Klasse gemäß den vom Benutzer angegebenen Auswahlkriterien zurückgibt. Diese Methode implementiert eine einfache Abfrage. Komplexere Abfragen erfordern möglicherweise die Verwendung von SWbemServices.ExecQuery.

Die Methode wird im semisynchronen Modus aufgerufen. Weitere Informationen finden Sie unter Aufrufen einer Methode.

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

Syntax

objWbemObjectSet = .InstancesOf( _
  ByVal strClass, _
  [ ByVal iFlags ], _
  [ ByVal objWbemNamedValueSet ] _
)

Parameter

strClass

Erforderlich. Zeichenfolge, die den Namen der Klasse enthält, für die Instanzen benötigt werden. Dieser Parameter darf nicht leer sein.

iFlags [optional]

Dieser Parameter bestimmt, wie detailliert der Aufruf aufgezählt wird und ob dieser Aufruf sofort eine Rückgabe liefert. Der Standardwert für diesen Parameter lautet wbemFlagReturnImmediately. Dieser Parameter kann folgende Werte akzeptieren:

wbemFlagForwardOnly (32 (0x20))

Bewirkt, dass ein Forward-Only-Enumerator zurückgegeben wird. Forward-Only-Enumeratoren sind normalerweise viel schneller und beanspruchen weniger Arbeitsspeicher als herkömmliche Enumeratoren, lassen aber keine Aufrufe von SWbemObject.Clone_ zu.

wbemFlagBidirectional (0 (0x0))

Bewirkt, dass WMI Zeiger auf Objekte der Enumeration so lange beibehält, bis der Client den Enumerator freigibt.

wbemFlagReturnImmediately (16 (0x10))

Standardwert für diesen Parameter. Dieses Flag bewirkt, dass der Aufruf sofort zurückgegeben wird.

wbemFlagReturnWhenComplete (0 (0x0))

Bewirkt, dass dieser Aufruf blockiert wird, bis die Abfrage abgeschlossen ist. Dieses Flag ruft die Methode im synchronen Modus auf.

wbemQueryFlagShallow (1 (0x1))

Erzwingt, dass die Enumeration nur direkte Unterklassen der angegebenen übergeordneten Klasse enthält.

wbemQueryFlagDeep (0 (0x0))

Standardwert für diesen Parameter. Dieser Wert bewirkt, dass die Enumeration alle Klassen in der Hierarchie umfasst.

wbemFlagUseAmendedQualifiers (131072 (0x20000))

Bewirkt, dass WMI Klassenänderungsdaten mit der Basisklassendefinition zurückgibt. Weitere Informationen finden Sie unter Lokalisieren von WMI-Klasseninformationen.

objWbemNamedValueSet [optional]

Dies ist in der Regel nicht definiert. Andernfalls handelt es sich um ein SWbemNamedValueSet-Objekt, dessen Elemente die Kontextinformationen darstellen, die von dem Anbieter verwendet werden können, der die Anforderung verarbeitet. Ein Anbieter, der solche Informationen unterstützt oder benötigt, muss die erkannten Wertnamen, den Datentyp des Werts, die zulässigen Werte und die Semantik dokumentieren.

Rückgabewert

Bei erfolgreicher Ausführung gibt die Methode ein SWbemObjectSet zurück.

Fehlercodes

Nach Abschluss der Methode InstancesOf kann das Err-Objekt einen der Fehlercodes aus der folgenden Liste enthalten.

Hinweis

Ein zurückgegebener Enumerator mit null Elementen ist kein Fehler.

wbemErrAccessDenied – 2147749891 (0x80041003)

Der aktuelle Benutzer bzw. die aktuelle Benutzerin ist nicht zum Anzeigen von Instanzen der angegebenen Klasse berechtigt.

wbemErrFailed – 2147749889 (0x80041001)

Ein unbekannter Fehler ist aufgetreten.

wbemErrInvalidClass – 2147749904 (0x80041010)

Die angegebene Klasse ist ungültig.

wbemErrInvalidParameter – 2147749896 (0x80041008)

Ein angegebener Parameter ist ungültig.

wbemErrOutOfMemory – 2147749894 (0x80041006)

Es ist nicht genügend Arbeitsspeicher zum Abschließen des Vorgangs vorhanden.

Bemerkungen

Die InstancesOf-Methode funktioniert nur für Klassenobjekte.

Standardmäßig führt InstancesOf einen tiefgehenden Datenabruf durch. Das heißt, InstancesOf ruft alle Instanzen der von Ihnen identifizierten verwalteten Ressource und alle Instanzen aller unter der Zielklasse definierten Unterklassen ab. Das folgende Skript ruft beispielsweise alle Ressourcen ab, die von allen dynamischen Klassen modelliert werden, die unter der abstrakten Klasse „CIM_Service“ definiert sind.

strComputer = "."
Set objSWbemServices = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colSWbemObjectSet = objSWbemServices.InstancesOf("CIM_Service")
For Each objSWbemObject In colSWbemObjectSet
    Wscript.Echo "Object Path: " & objSWbemObject.Path_.Path
Next

Wenn Sie dieses Skript ausführen, erhalten Sie Informationen zurück. Diese Informationen sind jedoch nicht auf die Dienste beschränkt, die auf einem Computer installiert sind. Stattdessen umfassen sie Daten aus allen untergeordneten Klassen von CIM_Service, einschließlich Win32_SystemDriver und Win32_ApplicationService.

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_SWbemServices
IID
IID_ISWbemServices

Weitere Informationen

SWbemServices

SWbemObjectSet