SWbemServices.InstancesOf-Methode

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 vonSWbemServices.Exe cQuery.

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

Syntax

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

Parameter

strClass

Erforderlich. Eine Zeichenfolge, die den Namen der Klasse enthält, für die Instanzen gewünscht werden. Dieser Parameter darf nicht leer sein.

iFlags [ Optional]

Dieser Parameter bestimmt, wie detailliert der Aufruf aufzählt und ob dieser Aufruf sofort zurückgegeben wird. Der Standardwert für diesen Parameter ist wbemFlagReturnImmediately. Dieser Parameter kann die folgenden Werte akzeptieren.

wbemFlagForwardOnly( (32 (0x20))

Bewirkt, dass ein vorwärts enumerator zurückgegeben wird. Vorwärts-Enumeratoren sind im Allgemeinen viel schneller und verwenden weniger Arbeitsspeicher als herkömmliche Enumeratoren, aber sie lassen keine Aufrufe von SWbemObject.Clone zu. _

wbemFlagBidirectional** (0 (0x0))

Bewirkt, dass WMI Zeiger auf Objekte der Enumeration beibehalten, bis der Client den Enumerator frei gibt.

wbemFlagReturnImmediately( (16 (0x10))

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

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 unmittelbare Unterklassen der angegebenen übergeordneten Klasse enthält.

wbemQueryFlagDeep** (0 (0x0))

Standardwert für diesen Parameter. Dieser Wert erzwingt, dass die -Enumeration alle Klassen in der Hierarchie enthält.

wbemFlagUseAmendedQualifiers** (131072 (0x20000))

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

objWbemNamedValueSet [ Optional]

In der Regel ist dies nicht definiert. Andernfalls ist dies ein SWbemNamedValueSet-Objekt, dessen Elemente die Kontextinformationen darstellen, die vom Anbieter verwendet werden können, der die Anforderung bedient. Ein Anbieter, der solche Informationen unterstützt oder erfordert, muss die erkannten Wertnamen, den Datentyp des Werts, die zulässigen Werte und die Semantik dokumentieren.

Rückgabewert

Bei Erfolg gibt die Methode ein SWbemObjectSet zurück.

Fehlercodes

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

Hinweis

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

wbemErrAccessDenied – 2147749891 (0x80041003)

Der aktuelle Benutzer verfügt nicht über die Berechtigung zum Anzeigen von Instanzen der angegebenen Klasse.

wbemErrFailed – 2147749889 (0x80041001)

Nicht angegebener Fehler.

wbemErrInvalidClass – 2147749904 (0x80041010)

Die angegebene Klasse ist ungültig.

wbemErrInvalidParameter – 2147749896 (0x80041008)

Ein angegebener Parameter ist ungültig.

wbemErrOutOfMemory : 2147749894 (0x80041006)

Nicht genügend Arbeitsspeicher zum Abschließen des Vorgangs.

Hinweise

Die InstancesOf-Methode funktioniert nur für Klassenobjekte.

Standardmäßig führt InstancesOf einen tiefen Abruf durch. Das heißt, InstancesOf ruft alle Instanzen der verwalteten Ressource ab, die Sie identifizieren, und alle Instanzen aller Unterklassen, die unter der Zielklasse definiert sind. Das folgende Skript ruft beispielsweise alle Ressourcen ab, die von allen dynamischen Klassen modelliert werden, die unter der abstrakten _ CIM-Dienstklasse 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 enthält sie Informationen aus allen untergeordneten Klassen des CIM-Diensts, 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

Siehe auch

Swbemservices

SWbemObjectSet