SWbemServices object
Sie können die Methoden eines Objekts SWbemServices verwenden, um Vorgänge für einen Namespace auf einem lokalen Host oder einem Remotehost auszuführen. Dieses Objekt kann nicht durch den VBScript-Aufruf CreateObject erstellt werden.
Member
Das Objekt SWbemServices verfügt über die folgenden Member:
Methoden
Das Objekt SWbemServices verfügt über die folgenden Methoden.
Methode | BESCHREIBUNG |
---|---|
AssociatorsOf | Ruft die Instanzen verwalteter Ressourcen ab, die einer angegebenen Ressource über eine oder mehrere Zuordnungsklassen zugeordnet sind. Sie geben den Objektpfad für den ursprünglichen Endpunkt an, und AssociatorsOf gibt die verwalteten Ressourcen am entgegengesetzten Endpunkt zurück. Die Methode AssociatorsOf führt dieselbe Funktion wie die WQL-Abfrage "ASSOCIATORS OF" aus. |
AssociatorsOfAsync | Gibt asynchron eine Auflistung von Objekten (Klassen oder Instanzen) zurück, die einem angegebenen Objekt zugeordnet sind. |
Löschen | Löscht einen Instanz einer verwalteten Ressource (oder einer Klassendefinition aus dem CIM-Repository). |
DeleteAsync | Löscht asynchron die im Objektpfad angegebene Klasse oder Instanz. |
ExecMethod | Stellt eine alternative Möglichkeit zum Ausführen einer Methode bereit, die von einer Definition einer verwalteten Ressourcenklasse definiert wird. Wird hauptsächlich in Situationen verwendet, in denen die Skriptsprache keine Parameter unterstützt. JScript unterstützt z. B. keine Parameter. |
ExecMethodAsync | Führt asynchron eine Methode aus, die von einem Methodenanbieter exportiert wird. |
ExecNotificationQuery | Führt eine Ereignisabonnementabfrage aus, um Ereignisse zu empfangen. Eine Ereignisabonnementabfrage ist eine Abfrage, die eine Änderung an der verwalteten Umgebung definiert, die Sie überwachen möchten. Wenn die Änderung auftritt, übermittelt die WMI-Infrastruktur ein Ereignis, das die Änderung am aufrufenden Skript beschreibt. |
ExecNotificationQueryAsync | Führt asynchron eine Abfrage zum Empfangen von Ereignissen aus. |
ExecQuery | Führt eine Abfrage aus, um eine Auflistung von Instanzen von WMI-verwalteten Ressourcen (oder Klassendefinitionen) abzurufen.
ExecQuery kann verwendet werden, um eine gefilterte Sammlung von Instanzen abzurufen, die den Kriterien entsprechen, die Sie in der an ExecQuery übergebenen Abfrage definieren. |
ExecQueryAsync | Führt asynchron eine Abfrage zum Empfangen von Ereignissen aus. |
Herunterladen | Ruft eine einzelne Instanz einer verwalteten Ressource (oder Klassendefinition) basierend auf einem Objektpfad ab. |
GetAsync | Ruft asynchron basierend auf dem Objektpfad ein Objekt ab, bei dem es sich entweder um eine Klassendefinition oder eine Instanz handelt. |
InstancesOf | Ruft alle Instanzen einer verwalteten Ressource basierend auf einem Klassennamen ab. Standardmäßig führt InstancesOf einen tiefgehenden Datenabruf durch. Das heißt, InstancesOf ruft die Instanzen der Ressource ab, die durch den an die -Methode übergebenen Klassennamen identifiziert werden, und ruft außerdem alle Instanzen aller Ressourcen ab, die unter der Zielklasse definiert sind. |
InstancesOfAsync | Gibt asynchron einen Enumerator zurück, der die Instanzen einer angegebenen Klasse gemäß den vom Benutzer angegebenen Auswahlkriterien zurückgibt. |
ReferencesTo | Gibt alle Zuordnungen zurück, die auf eine angegebene Ressource verweisen. Am besten ist ReferencesTo zu verstehen, wenn es mit der Methode AssociatorsOf verglichen wird.
AssociatorsOf gibt die dynamischen Ressourcen zurück, die sich am entgegengesetzten Ende einer Zuordnung befinden.
ReferencesTo gibt die Zuordnung selbst zurück. Die Methode ReferencesTo führt dieselbe Funktion wie die WQL-Abfrage „REFERENCES OF“ aus. |
ReferencesToAsync | Gibt eine Sammlung aller Zuordnungsklassen oder -instanzen zurück, die auf eine bestimmte Quellklasse oder Instanz verweisen. |
SubclassesOf | Ruft alle Unterklassen einer angegebenen Klasse aus dem CIM-Repository ab. |
SubclassesOfAsync | Gibt asynchron eine Sammlung von Unterklassen für eine angegebene Klasse zurück. |
Eigenschaften
Das Objekt SWbemServices verfügt über die folgenden Eigenschaften.
Eigenschaft | Zugriffstyp | BESCHREIBUNG |
---|---|---|
Security_ |
Schreibgeschützt |
Dient zum Abrufen oder Festlegen der Sicherheitseinstellungen für ein Objekt SWbemServices. |
Bemerkungen
Die Methoden können entweder im synchronen Modus, im asynchronen Modus oder im halbsynchronen Modus aufgerufen werden. Weitere Informationen finden Sie unter Aufrufen einer Methode.
Übersicht
SWbemServices verfügt über zwei primäre Rollen. Zunächst stellt das Objekt SWbemServices eine authentifizierte Verbindung mit einem WMI-Namespace auf einem Zielcomputer dar. Zweitens ist SWbemServices das Automatisierungsobjekt, das Sie zum Abrufen von WMI-verwalteten Ressourcen verwenden. Sie können einen Verweis auf ein Objekt SWbemServices auf zwei Arten abrufen:
Wie in den meisten der bisher vorgestellten WMI-Skripts gezeigt, können Sie die VBScript zur Funktion GetObject in Kombination mit dem WMI-Moniker "winmgmts:" verwenden. Das folgende Beispiel ist die einfachste Form einer WMI-Verbindung. Das Beispiel stellt eine Verbindung mit dem Standardnamespace (normalerweise "Root\CIMv2") auf dem lokalen Computer her:
Set objSWbemServices = GetObject("winmgmts:")
Sie können auch die Methode ConnectServer des Objekts SWbemLocator verwenden, um einen Verweis auf ein Objekt SWbemServices abzurufen.
Nachdem Sie einen Verweis auf ein Objekt SWbemServices abgerufen haben, verwenden Sie den Objektverweis, um 1 von 18 Methoden aufzurufen, die mit SWbemServices verfügbar sind. SWbemServices kann je nach aufgerufener Methode eines von drei verschiedenen WMI-Skriptbibliotheksobjekten (SWbemObjectSet, SWbemObject oder SWbemEventSource) zurückgeben. Wenn Sie den Typ des Objekts kennen, das jede Methode zurückgibt, können Sie den nächsten Schritt bestimmen, den Ihr Skript ausführen muss. Wenn Sie beispielsweise ein SWbemObjectSet erhalten, müssen Sie die Sammlung auflisten, um auf jedes SWbemObject in der Sammlung zuzugreifen. Wenn Sie ein SWbemObject erhalten, können Sie sofort auf die Objektmethoden und -eigenschaften zugreifen, ohne zuerst die Auflistung aufzulisten.
Betriebsmodi
SWbemServices unterstützt drei Betriebsmodi: synchron, asynchron und halbisynchron.
Synchronous. Im synchronen Modus wird das Skript blockiert (angehalten), bis die Methode SWbemServices abgeschlossen ist. Ihr Skript wartet nicht nur, sondern in Fällen, in denen WMI Instanzen verwalteter Ressourcen abruft, erstellt WMI das gesamte SWbemObjectSet im Arbeitsspeicher, bevor das erste Byte von Daten an das aufrufende Skript zurückgegeben wird. Dies kann sich negativ auf die Skriptleistung und auf den Computer auswirken, auf dem das Skript ausgeführt wird. Das synchrone Abrufen von Tausenden von Ereignissen aus den Windows-Ereignisprotokollen kann beispielsweise lange dauern und viel Arbeitsspeicher beanspruchen. Aus diesen Gründen werden synchrone Vorgänge mit Ausnahme der drei Methoden die standardmäßig synchron sind (Delete, ExecMethod und Get) nicht empfohlen. Diese Methoden geben keine großen Datasets zurück, sodass ein halbsynchroner Vorgang nicht erforderlich ist.
Asynchron. Im asynchronen Modus ruft Ihr Skript eine der neun asynchronen Methoden auf und gibt sofort zurück. Das heißt, sobald die asynchrone Methode aufgerufen wird, setzt Ihr Skript die Ausführung der nächsten Codezeile fort. Um eine asynchrone Methode zu verwenden, muss Ihr Skript zunächst ein Objekt SWbemSink und eine spezielle Unterroutine mit dem Namen Ereignishandler erstellen. WMI führt den asynchronen Vorgang aus und benachrichtigt das Skript, indem die Ereignishandlerunterroutine aufgerufen wird, wenn der Vorgang abgeschlossen ist.
Halbsynchron. Der halbisynchrone Modus ist ein Kompromiss zwischen synchron und asynchron. Halbsynchrone Vorgänge bieten eine bessere Leistung als synchrone Vorgänge, erfordern jedoch nicht die zusätzlichen Kenntnisse und Skripterstellungsschritte, die für die Verarbeitung asynchroner Vorgänge erforderlich sind. Dies ist der Standardvorgangstyp für die meisten WMI-Abfragen.
Im halbisynchronen Modus ruft Ihr Skript eine der sechs Datenabrufmethoden auf und gibt sofort zurück. WMI ruft die verwalteten Ressourcen im Hintergrund ab, während Ihr Skript weiterhin ausgeführt wird. Wenn die Ressourcen abgerufen werden, werden sie sofort über ein SWbemObjectSet an Ihr Skript zurückgegeben. Sie können mit dem Zugriff auf die verwalteten Ressourcen beginnen, ohne darauf zu warten, dass die gesamte Sammlung zusammengestellt wird.
Es gibt eine Einschränkung für halbsynchrone Vorgänge, wenn Sie mit verwalteten Ressourcen arbeiten, die über viele Instanzen (also mehr als 1.000) verfügen, z. B. CIM_DataFile und Win32_NTLogEvent. Der Einschränkung ist ein Ergebnis der Verarbeitung von Instanzen verwalteter Ressourcen durch WMI. Für jede Instanz einer verwalteten Ressource erstellt und zwischenspeichert WMI ein Objekt SWbemObject. Wenn eine große Anzahl von Instanzen für eine verwaltete Ressource vorhanden ist, kann der Abruf der Instanz verfügbare Ressourcen monopolisieren und die Leistung des Skripts und des Computers verringern.
Um das Problem zu umgehen, können Sie halbsynchrone Methodenaufrufe mithilfe des Flags wbemFlagForwardOnly optimieren. Das Flag wbemFlagForwardOnly in Kombination mit dem Flag wbemFlagReturnImmediately (das halbsynchrone Standardflag) weist WMI an, ein nur vorwärts zu verwendendes SWbemObjectSet zurückzugeben, wodurch das Leistungsproblem für große Datasets beseitigt wird. Die Verwendung des Flags wbemFlagForwardOnly ist jedoch mit Kosten verbunden. Ein nur vorwärts verwendbares SWbemObjectSet kann nur einmal aufgelistet werden. Nachdem auf jedes SWbemObject in einem vorwärts zu verwendenden SWbemObjectSet zugegriffen wird, wird der der Instanz zugeordnete Speicher freigegeben.
Mit Ausnahme der Methoden Delete, ExecMethod, Get und neun asynchronen Methoden ist halbsynchron der standardmäßige und empfohlene Betriebsmodus.
Häufig verwendete Methoden
Die Methoden, die am häufigsten in Systemverwaltungsskripts verwendet werden, sind InstancesOf, ExecQuery, Get und ExecNotificationQuery. InstancesOf wird zwar häufig verwendet, ist aber nicht unbedingt die empfohlene Methode zum Abrufen von Informationen (obwohl dies wohl die einfachste Methode ist).
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) |
Windows Vista |
Unterstützte Mindestversion (Server) |
Windows Server 2008 |
Header |
|
Typbibliothek |
|
DLL |
|
CLSID |
CLSID_SWbemServices |
IID |
IID_ISWbemServices |