Blog ENI : Toute la veille numérique !
🎁 Jusqu'au 31/12, recevez notre
offre d'abonnement à la Bibliothèque Numérique. Cliquez ici
🎁 Jusqu'au 31/12, recevez notre
offre d'abonnement à la Bibliothèque Numérique. Cliquez ici

PowerShell et WMI

Introduction

L’administration de systèmes et postes de travail requiert de pouvoir gérer les différentes parties, composants, éléments d’une infrastructure ou système.

Pour gérer un système, il faut pouvoir contrôler les différentes ressources qui le composent :

  • matériel,

  • composants système et réseau,

  • programmes installés,

  • disques et périphériques,

  • etc.

Dans ce chapitre nous allons voir les points suivants :

  • Qu’est-ce que sont CIM, DMTF et WBEM ?

  • Qu’est-ce qu’est WMI ?

  • Comment utiliser les commandes WMI et CIM ?

  • Gérer son système avec ces commandes

  • Différents cas d’usage

WBEM, DMTF, CIM, WMI

1. WBEM

WBEM (Web-Based Enterprise Management) est un regroupement de standards internet et de normes industrielles de gestion de systèmes. Il permet d’unifier l’administration dans un environnement distribué et s’appuie sur des normes internet comme CIM (Common Information Model).

2. DMTF

DMTF (Distributed Management Task Force) est une organisation fondée en 1992 regroupant des entreprises, d’autres organisations, des universités et également des personnes.

Parmi ses membres, on note par exemple : AMD, Cisco, Dell, Fujitsu, HP, Hitachi, IBM, Intel, Microsoft, Novell, Oracle, Sun ou encore Symantec.

L’objectif principal de la DMTF est de développer et maintenir des standards pour l’administration de systèmes informatiques d’entreprises ou connectés à Internet. Parmi ces standards, il y a notamment :

  • CIM (Common Information Model)

  • WBEM (Web-Based Enterprise Management)

  • SMBIOS (System Management BIOS)

  • WS-Management

3. CIM

Le modèle CIM a été conçu par la DMTF. C’est un standard, un protocole ou une méthode d’administration, de gestion et de supervision des éléments informatiques. Il vise à englober les différents éléments informatiques sous la forme d’un ensemble d’objets avec un ensemble de relations entre ceux-ci dans...

WMI et PowerShell

1. Exécution d’une requête

L’exécution d’une requête WMI au travers de PowerShell se réalise telle que ci-dessous :

  • Exécution d’une requête WMI via PowerShell.

  • La requête est envoyée vers le composant CIMOM (CIM Object Manager).

  • CIMOM redirige la requête vers le fournisseur WMI adéquat.

  • Le fournisseur WMI exécute la requête en se servant des classes.

  • WMI envoie la réponse à CIMOM qui redirige la sortie vers PowerShell.

  • WMI en termes PowerShell représente un objet que l’on peut traiter.

Il existe deux types de commandes pour interroger WMI avec PowerShell :

  • commandes WMI,

  • commandes CIM.

Nous pouvons facilement retrouver les différentes cmdlets relatives à l’utilisation de WMI.

Pour cela, nous utiliserons la cmdlet Get-Command suivie du terme WMI afin de chercher toutes les cmdlets qui comportement ce mot.

Get-Command "*wmi*" 

Ci-dessous le résultat :

PS C:\Users\damien.vanrobaeys> get-command "*wmi*" | select  
commandtype, name 
 
CommandType Name 
----------- ---- 
      Alias gwmi 
      Alias iwmi 
      Alias rwmi 
      Alias swmi 
     Cmdlet Get-WmiObject 
     Cmdlet Invoke-WmiMethod 
     Cmdlet Register-WmiEvent 
     Cmdlet Remove-WmiObject 
     Cmdlet Set-WmiInstance 
Application WMIADAP.exe 
Application WmiApSrv.exe 
Application WMIC.exe 
Application WmiMgmt.msc 
Application WmiPrvSE.exe 

2. PowerShell et les commandes WMI

a. Fonctionnement des cmdlets WMI

La cmdlet la plus utile et utilisée parmi celles ci-dessus est sans aucun doute Get-WMIObject, également souvent utilisée via l’alias gwmi.

La première étape est donc de comprendre le fonctionnement de cette cmdlet.

Pour cela, nous utiliserons la cmdlet Get-Help.

Get-Help get-wmiobject 

Ci-dessous le retour :

PS C:\Users\damien.vanrobaeys> Get-Help get-wmiobject 
 
NAME 
    Get-WmiObject 
 
SYNOPSIS 
    Gets instances of Windows Management...