Die WMI Query Language (WQL) ist eine spezielle Abfragesprache, die von der Windows Management Instrumentation (WMI) verwendet wird, um Informationen über Systemressourcen auf Windows-Betriebssystemen abzurufen. Ähnlich wie SQL in der Datenbankwelt ermöglicht WQL das Formulieren von Abfragen, um spezifische Informationen von [[WMI]]-Objekten wie Hardwarekomponenten, Betriebssystemdaten, Netzwerkeinstellungen und mehr abzurufen. WQL unterstützt Filter, Joins und Bedingungen, die es ermöglichen, die Ergebnisse gezielt einzuschränken und so relevante Informationen für Diagnose, Berichterstellung und Automatisierung zu gewinnen. Betriebssysteminformationen $query = "SELECT * FROM Win32_OperatingSystem" $operatingSystems = Get-WmiObject -Query $query foreach ($os in $operatingSystems) { Write-Host "Betriebssystem: $($os.Caption)" Write-Host "Version: $($os.Version)" Write-Host "Buildnummer: $($os.BuildNumber)" Write-Host "Installiert am: $($os.InstallDate)" Write-Host "Architektur: $($os.OSArchitecture)" Write-Host "Registrierter Benutzer: $($os.RegisteredUser)" Write-Host "-----------------------------" } Festplatteninformationen $query = "SELECT * FROM Win32_DiskDrive" $drives = Get-WmiObject -Query $query foreach ($drive in $drives) { Write-Host "Festplatte: $($drive.DeviceID)" Write-Host "Hersteller: $($drive.Manufacturer)" Write-Host "Modell: $($drive.Model)" Write-Host "Kapazität: $($drive.Size) Bytes" Write-Host "-----------------------------" } Netzwerkschnittstellen $query = "SELECT * FROM Win32_NetworkAdapter WHERE NetConnectionStatus = 2" $adapters = Get-WmiObject -Query $query foreach ($adapter in $adapters) { Write-Host "Schnittstelle: $($adapter.NetConnectionID)" Write-Host "Beschreibung: $($adapter.Description)" Write-Host "MAC-Adresse: $($adapter.MACAddress)" Write-Host "IP-Adresse: $($adapter.IPAddress)" Write-Host "-----------------------------" } Software $query = "SELECT * FROM Win32_Product" $products = Get-WmiObject -Query $query foreach ($product in $products) { Write-Host "Produktname: $($product.Name)" Write-Host "Version: $($product.Version)" Write-Host "Hersteller: $($product.Vendor)" Write-Host "-----------------------------" }