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 "-----------------------------"
}