6-CIM-WMI
CIM et WMI permettent de collecter des informations sur les ressources d’un ordinateur local ou distant, ayant un OS Windows, comme la liste des utilisateurs ou le nombre de cartes réseau installées.
WMI est une technologie qui utilise le standard CIM. On peut dire que c’est une adaptation pour les systèmes Windows.
Ce standard CIM a été établi par plusieurs grandes entreprises (IBM, DELL, Intel, AMD, Microsoft, VMWare,…). Ce consortium est connu sous le nom de DMTF (Distributed Management Task Force).
Il y a une différence majeure entre CIM et WMI, au niveau des protocoles utilisés. CIM utilise WS-Man et CDXML, ce qui permet une utilisation plus facile dans un LAN.
Les avantages de CIM sur WMI sont :
meilleures interopérabilité (Linux)
facilitation de l’utilisation dans un LAN (pas de blocages sur les firewalls)
compatible avec les systèmes Windows avant la version 3 avec RPC/DCOM
Les acronymes sont :
WMI Windows Management Instrumentation
CIM Common Interface Model
CIM permet la gestion de système Linux avec un framework comme OMI = Open Management Infrastructure (Microsoft) ou OpenPegasus (OpenGroup).
Il est préférable d’utiliser les commandes CIM que WMI, pour des systèmes à partir de Windows 7 SP1/Windows 8 et Server 2008R2 SP1/Server 2012.
CIM est disponible à partie de la version 3.0 de PowerShell, avant cela seul WMI était disponible. Dans des versions prochaines, PowerShell supprimera les cmdlets WMI.
Dans ce cours, nous allons donc utiliser exclusivement les commandes CIM et le CIM Explorer. Les classes WMI sont toujours utilisables.
Les espaces de noms
Les classes dans CIM Explorer sont toutes contenues dans des espaces de noms. L’espace de nom par défaut est root/cimv2, il contient les classes pour le matériel de l’ordinateur et la configuration. Pour toutes les commandes qui suivent, l’espace de nom par défaut sera utilisé.
Les commandes
Nous utiliserons les commandes CIM. Il est possible d’utiliser directement les cmdlets ou d’utiliser une requête WQL(WMI Query Language).
Listes les classes
1Get-CimClass
Lister une classe spécifique
1Get-CimInstance -ClassName Win32_Process
Liste une classe spécifique en utilisant un filtre
1Get-CimInstance -ClassName Win32_Process -Filter "Name = 'firefox.exe'"
Liste une classe spécifique en utilisant une requête
1Get-CimInstance -Query "SELECT * FROM Win32_Process WHERE Name = 'firefox.exe'"
Les outils
- CIM:
Il y a un outil qui permet de visualiser les classes, directement dans ISE en ajoutant un onglet : CIM Explorer. Il faut l’extraire, et lancer le setup. Lorsque l’on lance ISE, il y a un composant additionnel.
IMPORTANT : Il faut noter que lorsque l’on ajoute le CIMExplorer, la politique d’exécution est modifiée avec Unrestricted. Dans notre cas, ce n’est pas un problème, mais dans une entreprise, il faudra la modifier selon les normes et préscriptions de l’entreprise.
La commande est Get-CimInstance. Elle permet d’obtenir aussi des informations sur des classes Wmi ou Cim
Pour les informations systèmes
1Get-CimInstance -ClassName Cim_OperatingSystem | Format-List
- Exercices: