11 Découverte à l’aide de requêtes WMI
Aperçu
WMI est une interface puissante de Windows qui peut être utilisée pour récupérer diverses informations sur les composants, les services, l'état et les logiciels installés de Windows.
Il peut être utilisé pour la découverte de disques physiques et leur collecte de données de performances, la découverte d'interfaces réseau, la découverte d'invités Hyper-V, la surveillance des services Windows et bien d'autres choses dans le système d'exploitation Windows.
Ce type de découverte de bas niveau est effectué à l'aide de requêtes WQL dont les résultats sont automatiquement transformés en un objet JSON adapté à la découverte de bas niveau.
Clé d’élément
L’élément à utiliser dans la règle de découverte est :
wmi.getall[<namespace>,<query>]
Cet élément transforme le résultat de la requête en un tableau JSON. Par exemple :
select * from Win32_DiskDrive where Name like '%PHYSICALDRIVE%'
peut renvoyer quelque chose comme ceci :
[
{
"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 découverte de bas niveau
Même si aucune macro de découverte de bas niveau n'est créée dans le JSON renvoyé, ces macros peuvent être définies par l'utilisateur comme une étape supplémentaire, à l'aide de macros LLD personnalisées avec un JSONPath pointant vers les valeurs découvertes dans le JSON renvoyé.
Les macros peuvent ensuite être utilisées pour créer des prototypes d'éléments, de déclencheurs, etc.