POWERSHELL – WMI Récupération d’informations

Dans cette article nous allons apprendre à récupérer les informations d’un ordinateur ou d’un serveur via Powershell.

Qu’est-ce que WMI ?

WMI veut dire Windows Management Instrumentation. Cet outil permet, localement ou à distance, de récupérer des informations et changer des paramètres sur une machine.

Fonctionnement de WMI

WMI est organisé en Section (aussi appelées Namespaces). Il existe plusieurs sections et chacune d’elles contiennent des Classes. Ce sont ces classes qui permettent de collecter des informations sur un ordinateur ou un serveur.

Les classes communes à tous et aussi les plus utilisées font parties de la section root/CIMV2.

Pour récupérer une information sur une classe on utilise la commande :

Get-WmiObject -Class "NomDeLaClasse" (-ComputerName "NomD'Hôte"/"AdresseIP" si c'est une requête distante) 

Infos:

« root/ » est une section contenant d’autre section. Si vous voulez connaître les autres sections appartenant à « /root », faites la commande:

Get-WmiObject -Namespace root -Class __NAMESPACE | Select Name

Nous ne verrons ici que quelques Classes présentes dans la section root/CIMV2 car il y en a énormément et malheureusement je n’ai pas la science infuse.. Pour vous donner un aperçu du nombre de classes rien que dans la section root/CIMV2 faites cette commande:

Get-WmiObject -list -Namespace root/CIMV2

Quelques classes les plus courantes

1 – Win32_BIOS

Cette classe permet d’avoir des informations sur le BIOS de la machine sur laquelle on fait la requête.

Get-WmiObject -Class Win32_BIOS

Infos:
Par défaut, la commande ne renvoie que 5 Propriété mais il existe d’autre propriété.

On peut les afficher avec la commande :

Get-WmiObject -Class Win32_BIOS | Get-Member

Infos:


Pour chaque Classe que je vais présenter ici, je ferais une petite liste des propriétés les plus pertinentes de mon point de vue.

Liste des propriétés intéressantes :
  • Manufacturer {Informations sur le fabricant}
  • Name {Nom du BIOS}
  • Version {Version du BIOS}
  • Status {Statut du BIOS}
  • SerialNumber {Numéro de série}

Exemple:

Get-WmiObject -Class Win32_BIOS | Select Manufacturer,Name,Version,Status,SerialNumber

2 – Win32_Processor

Cette classe permet d’avoir des informations sur le(les) processeur(s) (CPU).

Get-WmiObject -Class Win32_Processor
Liste des propriétés intéressantes :
  • DeviceID {ID du Processeur}
  • Name {Nom du Processeur}
  • Manufacturer {Nom du fabricant}
  • Caption {Légende/Description du Processeur}
  • LoadPercentage {Pourcentage de charge du Processeur}
  • NumberOfCores {Nombre de cœurs du processeur}

Exemple:

Get-WmiObject -Class Win32_Processor | Select DeviceID,Name,Manufacturer,Caption,LoadPercentage,NumberOfCores

3 – Win32_ComputerSystem

Cette classe permet d’avoir des informations sur l’ordinateur.

Get-WmiObject -Class Win32_ComputerSystem
Liste des propriétés intéressantes :
  • Name {Nom de l’ordinateur}
  • Domain {Domaine auquel appartient l’ordinateur}
  • Manufacturer {Nom du fabricant}
  • Model {Le modèle de l’ordinateur}
  • SystemType {L’architecture de l’ordinateur}
  • TotalPhysicalMemory {La mémoire physique totale}
  • Username {Le nom de l’utilisateur qui est connecté}

Exemple:

Get-WmiObject -Class Win32_ComputerSystem | Select Name,Domain,Manufacturer,Model,SystemType,TotalPhysicalMemory,Username

Infos:

Pour mettre le résulta de la propriété TotalPhysicalMemory arrondie au GB ou MB on peut utiliser la commande suivante:

[math]::Round((Get-WmiObject -Class Win32_ComputerSystem).TotalPhysicalMemory/1GB)

4 – Win32_QuickFixEngineering

Cette classe permet d’avoir des informations sur les Mises à Jour et Correctifs Windows [KBXXXXXXX]

Get-WmiObject -Class Win32_QuickFixEngineering
Liste des propriétés intéressantes :
  • Caption {URL qui nous donne plus d’information sur la mise à jour concernée}
  • Description {Description de la mise à jour}
  • HotFixID {Le nom de la mise à jour}
  • InstalledBy {Nom du compte qui a installé la mise à jour}
  • InstalledOn {Date à laquelle la mise à jour a été installé}

Exemple:

5 – Win32_OperatingSystem

Cette classe permet d’avoir des informations sur le système d’exploitation.

Get-WmiObject -Class Win32_OperatingSystem
Liste des propriétés intéressantes :
  • Caption {Description du système d’exploitation}
  • Manufacturer {Nom du fabricant}
  • OsArchitecture {L’architecture du système d’exploitation}
  • SystemDevice {Où est-ce que les fichier système sont stockés}
  • SystemDirectory {Le chemin du répertoire vers les fichiers système}
  • Version {La version du système d’exploitation}
  • NumberOfUsers {Le nombre d’utilisateur sur le système d’exploitation}
  • RegisteredUser {Le principal/premier? utilisateur enregistré}

Exemple:

6 – Win32_LogicalDisk

Cette classe permet d’avoir des informations sur les disques logiques.

Get-WmiObject -Class Win32_LogicalDisk
Liste des propriétés intéressantes :
  • DeviceID {Informations sur le fabricant}
  • DriveType {Numéro entre 0 et 6, voir plus bas}
  • Description {Description du disque}
  • FileSystem {Indique quel système de fichier est utilisé sur le disque}
  • ProviderName {Indique le chemin lorsqu’il s’agit d’un lecteur réseau}
  • Size {Indique la taille du disque}
  • FreeSpace {Indique l’espace libre sur le disque}

Infos:

A quoi correspond les numéro renvoyé par la propriété DeviceType ?

0 = Inconnu
1 = Aucun répertoire racine
2 = Disque amovible
3 = Disque locale
4 = Lecteur réseau
5 = CD
6 = Disque virtuel

Exemple:

Sources :

Publicités

Répondre

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l'aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s