WMI Query Language (WQL)

Eintrag zuletzt aktualisiert am: 05.10.2004

Die WMI Query Language (WQL) ist eine SQL-Variante für die Abfragen in Windows Management Instrumentarium (WMI).

Ausführlicher Text

WMI erlaubt es, Suchanfragen in einer Syntax zu stellen, die auf der ANSI Standard Structured Query Language (SQL) basiert. Der SQL-Dialekt heißt WMI Query Language, kurz: WQL. Es wird allerdings nur Lesezugriff mit dem SQL-Befehl SELECT unterstützt. Weder DDL (Data Definition Language) noch DML (Data Manipulation Language) werden unterstützt.

Das WQL-SELECT unterstützt neben den Standardschlüsselwörtern FROM, WHERE, GROUP BY, HAVING und WITHIN auch die nicht in ADSI-SQL definierten Schlüsselwörter ASSOCIATORS OF und REFERENCES OF.

Operatoren

Unterstützte Operatoren sind =, <, >, <=, >=, != (alternativ: <>) sowie IS NULL, IS NOT NULL und ISA. Der ISA-Operator ermöglicht die Abfrage nach Unterklassen einer bestimmten Klasse. Wenn Dorf eine Unterklasse von Stadt ist, dann erfüllt ein Objekt GallischesDorf die Bedingung ISA Stadt.

Typen

WMI unterstützt drei Typen von WQL-Anfragen:
  • Anfragen nach Instanzen (Data Queries)
  • Anfragen nach Schemainformationen (Schema Queries)
  • Definitionen von Eventfiltern (Event Queries), die nach Änderungen von Klassen und Instanzen fragen

Beispiele

Beispiele für Abfragen mit WQL sind:

SELECT * FROM Win32_Service where state='running' and startmode='ma nual'
SELECT * FROM _InstanceModificationEvent within 5 where Target Instance isa "Win32Service" AND TargetInstance.State="Stopped"

Alle NT-Dienste, die laufen, aber manuell gestartet wurden

SELECT * FROM Win32_Service
WHERE
state='running' and startmode='manual'

Name und CATID aller COM-Komponentenkategorien

SELECT Name, CategoryId
FROM Win32_ComponentCategory

Das mehrwertige Attribut IPAddress einer Netzwerkkarte, die für das IP-Protokoll zugelassen ist

SELECT IPAddress
FROM Win32_NetworkAdapterConfiguration
WHERE IPEnabled=TRUE

Eintragsnummer und Nachricht aller Einträge in das Application-Ereignisprotokoll

SELECT RecordNumber, Message
FROM Win32_NTLogEvent
WHERE Logfile='Application'

Querverweise

Der Systems Management Server enthält eine erweiterte Fassung von WQL unter dem Namen Extended WQL.