11 Descubrimiento usando consultas WMI

Descripción general

WMI es una interfaz potente en Windows que puede utilizarse para recuperar diversa información sobre componentes de Windows, servicios, estado y software instalado.

Puede utilizarse para el descubrimiento de discos físicos y la recopilación de sus datos de rendimiento, descubrimiento de interfaces de red, descubrimiento de invitados Hyper-V, monitorización de servicios de Windows y muchas otras cosas en el sistema operativo Windows.

Este tipo de descubrimiento de bajo nivel se realiza utilizando consultas WQL cuyos resultados se transforman automáticamente en un objeto JSON adecuado para el descubrimiento de bajo nivel.

Clave de item

El item que se debe usar en la regla de descubrimiento es:

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

Este item transforma el resultado de la consulta en un arreglo JSON. Por ejemplo:

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

puede devolver algo como esto:

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

Macros de descubrimiento de bajo nivel

Aunque no se crean macros de descubrimiento de bajo nivel en el JSON devuelto, estas macros pueden ser definidas por el usuario como un paso adicional, utilizando la funcionalidad de macro LLD personalizada con JSONPath apuntando a los valores descubiertos en el JSON devuelto.

Las macros luego pueden utilizarse para crear prototipos de item, trigger, etc.