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