11 Erkennung mithilfe von WMI-Abfragen
Übersicht
WMI ist eine leistungsstarke Schnittstelle in Windows, die zum Abrufen verschiedener Informationen über Windows-Komponenten, Dienste, Zustände und installierte Software verwendet werden kann.
Sie kann für die Erkennung physischer Datenträger und die Erfassung ihrer Leistungsdaten, die Erkennung von Netzwerkschnittstellen, die Erkennung von Hyper-V-Gästen, die Überwachung von Windows-Diensten und viele andere Aufgaben im Windows-Betriebssystem verwendet werden.
Diese Art der Low-Level- Erkennung wird mithilfe von WQL- Abfragen durchgeführt, deren Ergebnisse automatisch in ein für die Low-Level-Erkennung geeignetes JSON-Objekt umgewandelt werden.
Datenpunktschlüssel
Der im Discovery-Regel zu verwendende Datenpunkt ist
wmi.getall[<namespace>,<query>]
Dieser Datenpunkt wandelt das Abfrageergebnis in ein JSON-Array um. Zum Beispiel:
select * from Win32_DiskDrive where Name like '%PHYSICALDRIVE%'
kann etwa Folgendes zurückgeben:
[
{
"DeviceID" : "\\.\PHYSICALDRIVE0",
"BytesPerSector" : 512,
"Capabilities" : [
3,
4
],
"CapabilityDescriptions" : [
"Random Access",
"Supports Writing"
],
"Caption" : "VBOX HARDDISK ATA Device",
"ConfigManagerErrorCode" : 0,
"ConfigManagerUserConfig" : "False",
"CreationClassName" : "Win32_DiskDrive",
"Description" : "Disk drive",
"FirmwareRevision" : "1.0",
"Index" : 0,
"InterfaceType" : "IDE"
},
{
"DeviceID" : "\\.\PHYSICALDRIVE1",
"BytesPerSector" : 512,
"Capabilities" : [
3,
4
],
"CapabilityDescriptions" : [
"Random Access",
"Supports Writing"
],
"Caption" : "VBOX HARDDISK ATA Device",
"ConfigManagerErrorCode" : 0,
"ConfigManagerUserConfig" : "False",
"CreationClassName" : "Win32_DiskDrive",
"Description" : "Disk drive",
"FirmwareRevision" : "1.0",
"Index" : 1,
"InterfaceType" : "IDE"
}
]
Low-level-Discovery-Makros
Auch wenn im zurückgegebenen JSON keine Low-level-Discovery-Makros erstellt werden, können diese Makros vom Benutzer als zusätzlicher Schritt definiert werden, indem die Funktion benutzerdefiniertes LLD-Makro mit JSONPath verwendet wird, das auf die erkannten Werte im zurückgegebenen JSON verweist.
Die Makros können dann verwendet werden, um Datenpunkt-, Auslöser- usw. Prototypen zu erstellen.