Dans les interpréteurs de commandes traditionnels, chaque outil ou commande détermine le format de sa sortie. Certains outils vous permettent de personnaliser la sortie et incluent des paramètres spéciaux pour contrôler le format de sortie.

Dans Windows PowerShell, les seules applets de commande qui mettent en forme la sortie sont les applets de commande format :

  • Format-List

  • Format-Custom

  • Format-Table

  • Format-Wide

Aucune autre applet de commande ne met en forme la sortie. Il n'est donc pas nécessaire que vous appreniez les routines et paramètres de mise en forme de plusieurs outils. Il suffit que vous connaissiez les applets de commande Format et leurs paramètres.

Lorsque vous exécutez une commande, Windows PowerShell appelle le formateur par défaut, déterminé par le type des données affichées. Le formateur détermine les propriétés de la sortie à afficher et si elles doivent être affichées sous forme de liste ou de tableau.

Par exemple, lorsque vous utilisez l'applet de commande Get-Service, l'affichage par défaut est un tableau à trois colonnes similaire au suivant :

C:\PS> get-service
Status   Name               DisplayName
------   ----               -----------
Running  AdtAgent           Event Forwarder
Stopped  Alerter            Alerter
Running  ALG                Application Layer Gateway Service

Pour modifier le format de la sortie de toute applet de commande, utilisez l'opérateur de pipeline (|) afin d'envoyer la sortie de la commande à une applet de commande Format.

Par exemple, la commande suivante envoie la sortie d'une commande Get-Service à l'applet de commande Format-List. En conséquence, les données de service sont présentées sous forme de liste pour chaque service.

C:\PS> get-service | format-list
Name                : AdtAgent
DisplayName         : Event Forwarder
Status              : Running
DependentServices   : {}
ServicesDependedOn  : {eventlog, dnscache}
CanPauseAndContinue : False
CanShutdown         : True
CanStop             : True
ServiceType         : Win32OwnProcess

Name                : Alerter
DisplayName         : Alerter
Status              : Stopped
DependentServices   : {}
ServicesDependedOn  : {LanmanWorkstation}
CanPauseAndContinue : False
CanShutdown         : False
CanStop             : False
ServiceType         : Win32ShareProcess

Name                : ALG
DisplayName         : Application Layer Gateway Service
Status              : Running
DependentServices   : {}

Dans ce format, non seulement les données apparaissent dans une liste au lieu d'un tableau, mais les informations sur chaque service sont plus nombreuses. Au lieu de trois colonnes de données pour chaque service, neuf lignes de données sont affichées. Format-List n'a pas récupéré les informations de service supplémentaires. Les données étaient toujours présentes dans les objets récupérés par Get-Service, mais Format-Table, le formateur par défaut, les a omises, car il ne pouvait pas afficher plus de trois colonnes sur la largeur de l'écran.

En plus de déterminer si les données apparaissent dans une liste ou un tableau, vous pouvez également déterminer les propriétés de l'objet qui doivent être affichées. Par exemple, l'affichage par défaut de Get-Service ne présente que les propriétés Status, Name et DisplayName de l'objet service.

Pour voir toutes les propriétés d'un objet, utilisez un opérateur de pipeline (|) afin d'envoyer la sortie d'une commande à l'applet de commande Get-Member. Par exemple, pour afficher toutes les propriétés d'un objet service, tapez :

get-service | get-member -membertype *property

   TypeName: System.ServiceProcess.ServiceController

Name                MemberType    Definition
----                ----------    ----------
Name                AliasProperty Name = ServiceName
CanPauseAndContinue Property      System.Boolean CanPauseAndContinue {get;}
CanShutdown         Property      System.Boolean CanShutdown {get;}
CanStop             Property      System.Boolean CanStop {get;}
Container           Property      System.ComponentModel.IContainer Container {get;}
DependentServices   Property      System.ServiceProcess.ServiceController[] DependentServices {get;}
DisplayName         Property      System.String DisplayName {get;set;}
MachineName         Property      System.String MachineName {get;set;}
ServiceHandle       Property      System.Runtime.InteropServices.SafeHandle ServiceHandle {get;}
ServiceName         Property      System.String ServiceName {get;set;}
ServicesDependedOn  Property      System.ServiceProcess.ServiceController[] ServicesDependedOn {get;}
ServiceType         Property      System.ServiceProcess.ServiceType ServiceType {get;}
Site                Property      System.ComponentModel.ISite Site {get;set;}
Status              Property      System.ServiceProcess.ServiceControllerStatus Status {get;}

Parce que toutes ces propriétés sont dans l'objet récupéré par Get-Service pour chaque service, vous pouvez en afficher une partie ou l'intégralité. Utilisez le paramètre Property des applets de commande Format pour sélectionner les propriétés à afficher et leur ordre. Par exemple, la commande suivante utilise Format-Table pour afficher uniquement les propriétés Name, ServiceType et CanShutDown du service.

get-service | format-table name, Servicetype, Canshutdown

Ceci n'est que le début des possibilités que vous offrent les affichages Windows PowerShell. Pour plus d'informations, utilisez les commandes suivantes pour consulter l'aide des applets de commande Format :

get-help format-list
get-help format-table
get-help format-wide
get-help format-custom




Table des matières