11 Обнаружение с использованием запросов WMI

Обзор

WMI — это мощный интерфейс в Windows, который можно использовать для получения различной информации о компонентах Windows, службах, состоянии и установленном программном обеспечении.

Его можно использовать для обнаружения физических дисков и сбора данных об их производительности, обнаружения сетевых интерфейсов, обнаружения гостевых систем Hyper-V, мониторинга служб Windows и многих других задач в ОС Windows.

Этот тип низкоуровневого обнаружения выполняется с помощью WQL-запросов, результаты которых автоматически преобразуются в JSON-объект, подходящий для низкоуровневого обнаружения.

Ключ элемента данных

Элемент данных, который следует использовать в правиле обнаружения:

wmi.getall[<namespace>,<query>]

Этот элемент данных преобразует результат запроса в JSON-массив. Например:

select * from Win32_DiskDrive where Name like '%PHYSICALDRIVE%'

может вернуть примерно следующее:

[
    {
        "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"
    }
]

Макросы низкоуровневого обнаружения

Несмотря на то, что в возвращаемом JSON не создаются никакие макросы низкоуровневого обнаружения, эти макросы могут быть определены пользователем как дополнительный шаг, используя функциональность пользовательских макросов LLD с JSONPath, указывающим на обнаруженные значения в возвращаемом JSON.

Затем эти макросы могут использоваться для создания прототипов элементов данных, триггеров и т. д.