Get-WmiObject est l'applet de commande la plus importante pour les tâches générales de gestion du système. Tous les paramètres de sous-système critiques sont exposés via WMI. En outre, WMI traite les données comme des objets de collections d'un ou de plusieurs éléments. Parce que Windows PowerShell fonctionne également avec les objets et a un pipeline qui vous permet de traiter un seul ou plusieurs objets de la même façon, l'accès WMI générique vous permet d'effectuer des tâches évoluées moyennant très peu de travail.

Les exemples suivants montrent comment collecter des informations spécifiques en utilisant Get-WmiObject sur un ordinateur arbitraire. Nous affectons comme valeur au paramètre ComputerName le point (.), qui représente l'ordinateur local. Vous pouvez spécifier le nom ou l'adresse IP de tout ordinateur accessible via WMI. Pour récupérer des informations sur l'ordinateur local, vous pouvez omettre « -ComputerName. »

Listage des paramètres des bureaux

Nous commencerons par une commande qui collecte des informations sur les Bureaux de l'ordinateur local.

Get-WmiObject -Class Win32_Desktop -ComputerName .

Les informations retournées concernent tous les Bureaux, qu'ils soient ou non utilisés.

Remarque :

Les informations retournées par certaines classes WMI peuvent être très détaillées et incluent souvent des métadonnées sur la classe WMI. Comme la plupart de ces propriétés de métadonnées ont des noms qui commencent par un trait de soulignement double, vous pouvez les filtrer à l'aide de Select-Object. Spécifiez uniquement les propriétés qui commencent par des caractères alphabétiques en utilisant [a-z]* comme valeur de Property. Par exemple :

Get-WmiObject -Class Win32_Desktop -ComputerName . | Select-Object -Property [a-z]*

Pour filtrer les métadonnées, utilisez un opérateur de pipeline (|) pour envoyer les résultats de la commande Get-WmiObject à Select-Object -Property [a-z]*.

Listage des informations sur le BIOS

La classe WMI Win32_BIOS retourne des informations relativement compactes et complètes à propos du BIOS système de l'ordinateur local :

Get-WmiObject -Class Win32_BIOS -ComputerName .

Listage des informations sur le processeur

Vous pouvez récupérer des informations générales sur le processeur à l'aide de la classe WMI Win32_Processor, même s'il est probable que vous souhaiterez les filtrer :

Get-WmiObject -Class Win32_Processor -ComputerName . | Select-Object -Property [a-z]*

Pour obtenir une chaîne de description générique de la famille du processeur, vous pouvez simplement retourner la propriété Win32_ComputerSystem SystemType :

PS> Get-WmiObject -Class Win32_ComputerSystem -ComputerName . | Select-Object -Property SystemType
SystemType
----------
X86-based PC

Listage du fabricant et du modèle de l'ordinateur

Des informations sur le modèle de l'ordinateur sont également disponibles via Win32_ComputerSystem. La sortie standard affichée n'aura besoin d'aucun filtrage pour fournir des données OEM :

PS> Get-WmiObject -Class Win32_ComputerSystem
Domain              : WORKGROUP
Manufacturer        : Compaq Presario 06
Model               : DA243A-ABA 6415cl NA910
Name                : MyPC
PrimaryOwnerName    : Jane Doe
TotalPhysicalMemory : 804765696

L'exactitude de votre sortie pour des commandes telles que celle-ci, qui retournent des informations provenant directement du matériel, ne pourra être supérieure à celle des données dont vous disposez. Certaines informations ne sont pas correctement configurées par les fabricants de matériel et peuvent donc ne pas être disponibles.

Listage des correctifs logiciels installés

Vous pouvez lister tous les correctifs logiciels installés à l'aide de Win32_QuickFixEngineering :

Get-WmiObject -Class Win32_QuickFixEngineering -ComputerName .

Cette classe retourne une liste de correctifs logiciels semblable à celle-ci :

Description         : Update for Windows XP (KB910437)
FixComments         : Update
HotFixID            : KB910437
Install Date        :
InstalledBy         : Administrator
InstalledOn         : 12/16/2005
Name                :
ServicePackInEffect : SP3
Status              :

Pour une sortie plus succincte, vous pouvez exclure certaines propriétés. Bien que vous puissiez utiliser le paramètre Get-WmiObject Property pour choisir uniquement le HotFixID, procéder de cette manière retournera en fait plus d'informations, car toutes les métadonnées sont affichées par défaut :

PS> Get-WmiObject -Class Win32_QuickFixEngineering -ComputerName . -Property HotFixId
HotFixID         : KB910437
__GENUS          : 2
__CLASS          : Win32_QuickFixEngineering
__SUPERCLASS     :
__DYNASTY        :
__RELPATH        :
__PROPERTY_COUNT : 1
__DERIVATION     : {}
__SERVER         :
__NAMESPACE      :
__PATH           :

Des données supplémentaires sont retournées, parce que le paramètre Property de Get-WmiObject limite les propriétés retournées par les instances de classes WMI et non l'objet retourné à Windows PowerShell. Pour réduire la sortie, utilisez Select-Object :

PS> Get-WmiObject -Class Win32_QuickFixEngineering -ComputerName . -Property Hot
FixId | Select-Object -Property HotFixId
HotFixId
--------
KB910437

Listage des informations de version d'un système d'exploitation

Les propriétés de la classe Win32_OperatingSystem incluent les informations de version et de Service Pack. Vous pouvez explicitement sélectionner uniquement ces propriétés pour obtenir de Win32_OperatingSystem un résumé des informations de version :

Get-WmiObject -Class Win32_OperatingSystem -ComputerName . | Select-Object -Property BuildNumber,BuildType,OSType,ServicePackMajorVersion,ServicePackMinorVersion

Vous pouvez également utiliser des caractères génériques avec le paramètre Select-Object Property. Parce que l'important est ici d'utiliser toutes les propriétés qui commencent par Build ou ServicePack, nous pouvons utiliser la forme raccourcie suivante :

PS> Get-WmiObject -Class Win32_OperatingSystem -ComputerName . | Select-Object -Property Build*,OSType,ServicePack*

BuildNumber             : 2600
BuildType               : Uniprocessor Free
OSType                  : 18
ServicePackMajorVersion : 2
ServicePackMinorVersion : 0

Listage des utilisateurs et du propriétaire locaux

Des informations générales locales sur les utilisateurs (nombre d'utilisateurs sous licence, nombre actuel d'utilisateurs et nom du propriétaire) peuvent être recherchées avec une sélection de propriétés de Win32_OperatingSystem. Vous pouvez sélectionner explicitement les propriétés à afficher comme suit :

Get-WmiObject -Class Win32_OperatingSystem -ComputerName . | Select-Object -Property NumberOfLicensedUsers,NumberOfUsers,RegisteredUser

En voici une version plus succincte qui utilise des caractères génériques :

Get-WmiObject -Class Win32_OperatingSystem -ComputerName . | Select-Object -Property *user*

Obtention de l'espace disque disponible

Pour consulter l'espace disque et l'espace libre pour les lecteurs locaux, vous pouvez utiliser la classe WMI Win32_LogicalDisk. Vous avez uniquement besoin de voir les instances ayant un DriveType de 3 (la valeur que WMI utilise pour les disques durs fixes).

Get-WmiObject -Class Win32_LogicalDisk -Filter "DriveType=3" -ComputerName .

DeviceID     : C:
DriveType    : 3
ProviderName :
FreeSpace    : 65541357568
Size         : 203912880128
VolumeName   : Local Disk

DeviceID     : Q:
DriveType    : 3
ProviderName :
FreeSpace    : 44298250240
Size         : 122934034432
VolumeName   : New Volume

PS> Get-WmiObject -Class Win32_LogicalDisk -Filter "DriveType=3" -ComputerName . | Measure-Object -Property FreeSpace,Size -Sum

Get-WmiObject -Class Win32_LogicalDisk -Filter "DriveType=3" -ComputerName . | Measure-Object -Property FreeSpace,Size -Sum | Select-Object -Property Property,Sum

Obtention d'informations sur les ouvertures de session

Vous pouvez obtenir des informations générales sur les ouvertures de session associées à des utilisateurs par le biais de la classe WMI Win32_LogonSession :

Get-WmiObject -Class Win32_LogonSession -ComputerName .

Obtention de l'utilisateur connecté à un ordinateur

Vous pouvez afficher l'utilisateur connecté à un système informatique particulier à l'aide de Win32_ComputerSystem. Cette commande retourne uniquement l'utilisateur connecté au Bureau du système :

Get-WmiObject -Class Win32_ComputerSystem -Property UserName -ComputerName .

Obtention de l'heure locale d'un ordinateur

Vous pouvez récupérer l'heure locale actuelle sur un ordinateur spécifique à l'aide de la classe WMI Win32_LocalTime. Parce que cette classe affiche par défaut toutes les métadonnées, vous pouvez les filtrer à l'aide de Select-Object :

PS> Get-WmiObject -Class Win32_LocalTime -ComputerName . | Select-Object -Property [a-z]*


Day          : 15
DayOfWeek    : 4
Hour         : 12
Milliseconds :
Minute       : 11
Month        : 6
Quarter      : 2
Second       : 52
WeekInMonth  : 3
Year         : 2006

Affichage de l'état des services

Pour consulter l'état de tous les services d'un ordinateur spécifique, vous pouvez utiliser l'applet de commande Get-Service localement comme mentionné précédemment. Pour les systèmes distants, vous pouvez utiliser la classe WMI Win32_Service. Si vous utilisez également Select-Object pour filtrer les résultats sur Status, Name et DisplayName, le format de sortie sera quasiment identique à celui de Get-Service :

Get-WmiObject -Class Win32_Service -ComputerName . | Select-Object -Property Status,Name,DisplayName

Pour permettre l'affichage complet des noms très longs de services occasionnels, vous pouvez utiliser Format-Table avec les paramètres AutoSize et Wrap afin d'optimiser la largeur des colonnes et de faire en sorte qu'au lieu d'être tronqués, les noms longs soient renvoyés à la ligne :

Get-WmiObject -Class Win32_Service -ComputerName . | Format-Table -Property Status,Name,DisplayName -AutoSize -Wrap




Table des matières