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.

../_images/Capt-instal-cim-1.PNG ../_images/Capt-instal-cim-2.PNG ../_images/Capt-instal-cim-3.PNG

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
../_images/Capt-exemple-cim.PNG
Exercices: