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...