Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
💥 Les 22 & 23 novembre : Accès 100% GRATUIT
à la Bibliothèque Numérique ENI. Je m'inscris !

Le format des données

Introduction

Windows PowerShell, dans son processus d’affichage des données, affiche ces dernières selon des règles bien précises. En effet, les objets sont affichés dans la console selon un affichage par défaut défini à partir de fichiers de format spéciaux déterminant comment un objet doit être disposé en sortie. Ce peut être un affichage en tableau ou en liste, mais la disposition des objets en sortie n’affecte cependant pas les objets en eux-mêmes, ou leur propre structure.

En plus de ce mécanisme de base constituant un principe existant depuis les origines de PowerShell, il est possible, et ce de manière dynamique, de modifier la disposition des objets en sortie grâce à un certain nombre de cmdlets dont la particularité est de s’occuper de l’affichage des objets. Ce chapitre décrira donc les différents moyens de disposition des objets en sortie, que ce soit sous forme de liste ou de tableau. Nous verrons également comment nous concentrer sur l’affichage d’une seule propriété ainsi que sur la personnalisation des données d’une manière générale.

Mettre en perspective les données sous forme de liste

PowerShell affiche les données de différentes façons en fonction de l’affichage par défaut défini pour le type des objets en question. Partant de ce principe, les données affichées le seront selon une structure bien précise, mais ne répondant pas toujours à nos attentes, surtout si nous désirons connaître l’ensemble des propriétés d’un objet. La cmdlet Format-List est l’outil par excellence pour disposer l’ensemble des propriétés d’un objet lorsque cela est nécessaire.

1. Lister l’ensemble des propriétés d’un objet

Format-List opère une mise en forme des données sous forme de liste avec une propriété appartenant à l’objet pour chaque ligne affichée. Utilisée avec le paramètre -Property, la commande Format-List affiche tout ou partie des propriétés d’un objet ; les objets WMI sont des structures aux propriétés nombreuses et constituent par conséquent des exemples significatifs. Voici celui de la classe WMI [Win32_OperatingSystem] :

PS> Get-WmiObject -Class 'Win32_OperatingSystem' 
 
 
SystemDirectory : C:\Windows\system32 
Organization    : 
BuildNumber     : 7601 
RegisteredUser  : Utilisateur Windows 
SerialNumber    : 00486-001-0001204-84115 
Version         : 6.1.7601
 

La classe [Win32_OperatingSystem] représente un système d’exploitation installé dans une machine donnée. Son interrogation via la cmdlet Get-WmiObject nous renvoie une instance de classe avec exactement six propriétés. Une simple recherche au sujet de cette classe nous révèle que celle-ci propose plus que les propriétés affichées :

PS> Get-WmiObject -Class 'Win32_OperatingSystem' | Get-Member 
 
 
 TypeName: System.Management.ManagementObject#root\cimv2\Win32_Opera... 
 
Name                                      MemberType  ...

Mettre en perspective les données sous forme de tableau

Nous venons de le voir, lister les propriétés d’objets sous forme de liste peut se révéler extrêmement utile. La possibilité d’un affichage sous forme de tableau est une autre forme de mise en perspective offerte par Windows PowerShell.

1. Afficher les propriétés d’un objet en colonne

La cmdlet Format-Table affiche les objets sous forme de tableau, en donnant aux utilisateurs la possibilité d’afficher leurs propriétés dans un ordre bien précis, à l’aide du paramètre -Property :

PS> Get-Service | Format-Table -Property 'Name','Status' 
 
Name                            Status 
----                            ------ 
AeLookupSvc                    Stopped 
ALG                            Stopped 
AppHostSvc                     Running 
AppIDSvc                       Stopped 
Appinfo                        Stopped 
AppMgmt                        Stopped 
AudioEndpointBuilder           Stopped 
AudioSrv                       Stopped 
BFE                            Running ...

Mettre en perspective une seule propriété sous forme de tableau

Windows PowerShell est programmé pour afficher les propriétés d’objets sous des formes diverses. Certaines propriétés sont affichées de manière partielle, car en fonction du type d’affichage ou de la taille de la console, la disposition de valeurs est complète ou pas. Si l’affichage de certaines informations se révèle partiel, alors la commande Format-Wide constitue un recours parmi d’autres pour centrer l’affichage sur une propriété spécifique.

1. Centrer l’affichage sur une propriété

La tâche de Format-Wide est de concentrer l’affichage d’une propriété sous forme d’un tableau pour mieux l’étudier. Pour comprendre, l’exemple le plus clair est celui de la commande Get-Service :

PS> Get-Service 
 
Status   Name               DisplayName 
------   ----               ----------- 
Stopped  AeLookupSvc        Expérience d'application 
Stopped  ALG                Service de la passerelle de la couc... 
Running  AppHostSvc         Application Host Helper Service 
Stopped  AppIDSvc           Identité de l'application 
Stopped  Appinfo            Informations d'application 
Stopped  AppMgmt            Gestion d'applications 
Stopped  aspnet_state       Service d'état ASP.NET 
Stopped  AudioEndpointBu... Générateur de points de terminaison... 
Stopped  AudioSrv           Audio Windows 
Running  BFE                Moteur de filtrage de base 
Stopped  BITS              ...

Mettre en perspective les données en personnalisant l’affichage

Les vues sous forme de liste ou de tableau sont les vues les plus utilisées. Cependant, l’affichage sous forme de liste ou de tableau est souvent partiel, sauf si les objets affichés comportent un nombre réduit de propriétés. Les objets que les utilisateurs auront à traiter seront souvent complexes et disposeront de nombreuses propriétés, car ils sont issus du framework .NET.

1. Afficher les objets selon un mode alternatif

Proposée comme une alternative aux classiques Format-Table et Format-List, la commande Format-Custom a la particularité d’afficher les objets, avec toute la complexité dont ils peuvent faire preuve. Prenons pour exemple un service Windows, celui de WinRM :

PS> $winrm = Get-Service -Name 'WinRM' 
PS> $winrm 
 
Status   Name               DisplayName 
------   ----               ----------- 
Stopped  WinRM              Gestion à distance de Windows (Gest...
 

Windows PowerShell affiche trois propriétés du service WinRM ; ici, par intuition, nous savons qu’un service Windows contient bien plus que trois propriétés. L’exemple suivant illustre l’objet $winrm affiché par la cmdlet...