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.