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