11 Descubrimiento mediante consultas WMI

Descripción general

WMI es una poderosa interfaz en Windows que se puede utilizar para recuperar información diversa sobre los componentes, servicios, estado y software instalado.

Se puede utilizar para el descubrimiento de discos físicos y sus datos de rendimiento. , descubrimiento de interfaz de red, descubrimiento de invitados Hyper-V, monitorear los servicios de Windows y muchas otras cosas en el sistema operativo Windows.

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

Clave de la métrica

La métrica a utilizar en la regla de descubrimiento es

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

Esta métrica transforma el resultado de la consulta en una matriz 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 archivo JSON devuelto, estas macros pueden ser definidas por el usuario como un paso adicional, usando la funcionalidad de macro LLD personalizada con JSONPath apuntando a los valores descubiertos en el JSON devuelto.

Luego, las macros se pueden utilizar para crear prototipos de métricas, iniciadores, etc.