.. ================================================== .. FOR YOUR INFORMATION .. -------------------------------------------------- .. -*- coding: utf-8 -*- with BOM. ========= 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 .. code-block:: powershell :linenos: Get-CimClass Lister une classe spécifique .. code-block:: powershell :linenos: Get-CimInstance -ClassName Win32_Process Liste une classe spécifique en utilisant un filtre .. code-block:: powershell :linenos: Get-CimInstance -ClassName Win32_Process -Filter "Name = 'firefox.exe'" Liste une classe spécifique en utilisant une requête .. code-block:: powershell :linenos: Get-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. .. image:: Capt-instal-cim-1.PNG .. image:: Capt-instal-cim-2.PNG .. image:: 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 .. code-block:: powershell :linenos: Get-CimInstance -ClassName Cim_OperatingSystem | Format-List .. image:: Capt-exemple-cim.PNG :Exercices: * :download:`Exo CIM-WMI <../Exercices/E-122-6-CIM-WMI.pdf>`