Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
PowerShell a un ensemble d’applets de commande qui vous permettent de contrôler la façon dont les propriétés sont affichées pour des objets particuliers. Les noms de toutes les applets de commande commencent par le verbe Format
. Ils vous permettent de sélectionner les propriétés que vous souhaitez afficher.
Get-Command -Verb Format -Module Microsoft.PowerShell.Utility
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Format-Custom 6.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Format-Hex 6.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Format-List 6.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Format-Table 6.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Format-Wide 6.1.0.0 Microsoft.PowerShell.Utility
Cet article décrit les applets de commande Format-Wide
, Format-List
et Format-Table
.
Chaque type d’objet dans PowerShell a des propriétés par défaut utilisées lorsque vous ne sélectionnez pas les propriétés à afficher. Chaque applet de commande utilise le même paramètre Property pour spécifier les propriétés que vous souhaitez afficher. Étant donné que Format-Wide
n’affiche qu’une seule propriété, son paramètre Property ne prend qu’une seule valeur, mais le paramètre Property de Format-List
et Format-Table
accepte une liste de noms de propriétés.
Dans cet exemple, la sortie par défaut de Get-Process
applet de commande montre que nous avons deux instances d’Internet Explorer en cours d’exécution.
Get-Process -Name iexplore
Le format par défaut des objets Process affiche les propriétés indiquées ici :
NPM(K) PM(M) WS(M) CPU(s) Id SI ProcessName
------ ----- ----- ------ -- -- -----------
32 25.52 10.25 13.11 12808 1 iexplore
52 11.46 26.46 3.55 21748 1 iexplore
Utilisation de Format-Wide pour la sortie d'un élément seul
L’applet de commande Format-Wide
, par défaut, affiche uniquement la propriété par défaut d’un objet. Les informations associées à chaque objet sont affichées dans une seule colonne :
Get-Command -Verb Format | Format-Wide
Format-Custom Format-Hex
Format-List Format-Table
Format-Wide
Vous pouvez également spécifier une propriété non par défaut :
Get-Command -Verb Format | Format-Wide -Property Noun
Custom Hex
List Table
Wide
Contrôle de l’affichage de Format-Wide avec une colonne
Avec l’applet de commande Format-Wide
, vous ne pouvez afficher qu’une seule propriété à la fois. Cela permet d’afficher des listes volumineuses dans plusieurs colonnes.
Get-Command -Verb Format | Format-Wide -Property Noun -Column 3
Custom Hex List
Table Wide
Utilisation de Format-List pour un affichage de liste
L’applet de commande Format-List
affiche un objet sous la forme d’une description, avec chaque propriété étiquetée et affichée sur une ligne distincte :
Get-Process -Name iexplore | Format-List
Id : 12808
Handles : 578
CPU : 13.140625
SI : 1
Name : iexplore
Id : 21748
Handles : 641
CPU : 3.59375
SI : 1
Name : iexplore
Vous pouvez spécifier autant de propriétés que vous le souhaitez :
Get-Process -Name iexplore | Format-List -Property ProcessName,FileVersion,StartTime,Id
ProcessName : iexplore
FileVersion : 11.00.18362.1 (WinBuild.160101.0800)
StartTime : 10/22/2019 11:23:58 AM
Id : 12808
ProcessName : iexplore
FileVersion : 11.00.18362.1 (WinBuild.160101.0800)
StartTime : 10/22/2019 11:23:57 AM
Id : 21748
Obtention d’informations détaillées en utilisant l’applet de commande Format-List avec des caractères génériques
L’applet de commande Format-List
vous permet d’utiliser un caractère générique comme valeur de son paramètre Property. Cela vous permet d’afficher des informations détaillées. Souvent, les objets incluent plus d’informations que nécessaire, c’est pourquoi PowerShell n’affiche pas toutes les valeurs de propriété par défaut. Pour afficher toutes les propriétés d’un objet, utilisez la commande Format-List -Property *
. La commande suivante génère plus de 60 lignes de sortie pour un seul processus :
Get-Process -Name iexplore | Format-List -Property *
Bien que la commande Format-List
soit utile pour afficher les détails, si vous souhaitez une vue d’ensemble de la sortie qui inclut de nombreux éléments, une vue tabulaire plus simple est souvent plus utile.
Utilisation de Format-Table pour la sortie tabulaire
Si vous utilisez l’applet de commande Format-Table
sans nom de propriété spécifié pour mettre en forme la sortie de la commande Get-Process
, vous obtenez exactement la même sortie que vous le faites sans applet de commande Format
. Par défaut, PowerShell affiche les objets de processus dans un format tabulaire.
Get-Service -Name win* | Format-Table
Status Name DisplayName
------ ---- -----------
Running WinDefend Windows Defender Antivirus Service
Running WinHttpAutoProx... WinHTTP Web Proxy Auto-Discovery Se...
Running Winmgmt Windows Management Instrumentation
Running WinRM Windows Remote Management (WS-Manag...
Remarque
Get-Service
est disponible uniquement sur les plateformes Windows.
Amélioration de la sortie de l’applet de commande Format-Table
Bien qu’une vue tabulaire soit utile pour afficher de nombreuses informations, il peut être difficile d’interpréter si l’affichage est trop étroit pour les données. Dans l’exemple précédent, la sortie est tronquée. Si vous spécifiez le paramètre AutoSize lorsque vous exécutez la commande Format-Table
, PowerShell calcule les largeurs de colonne en fonction des données réelles affichées. Cela rend les colonnes lisibles.
Get-Service -Name win* | Format-Table -AutoSize
Status Name DisplayName
------ ---- -----------
Running WinDefend Windows Defender Antivirus Service
Running WinHttpAutoProxySvc WinHTTP Web Proxy Auto-Discovery Service
Running Winmgmt Windows Management Instrumentation
Running WinRM Windows Remote Management (WS-Management)
L’applet de commande Format-Table
peut toujours tronquer des données, mais elle ne tronque qu’à la fin de l’écran.
Les propriétés, autres que celles affichées, sont aussi volumineuses que nécessaire pour que leur élément de données le plus long s’affiche correctement.
Get-Service -Name win* |
Format-Table -Property Name, Status, StartType, DisplayName, DependentServices -AutoSize
Name Status StartType DisplayName DependentServi
ces
---- ------ --------- ----------- --------------
WinDefend Running Automatic Windows Defender Antivirus Service {}
WinHttpAutoProxySvc Running Manual WinHTTP Web Proxy Auto-Discovery Service {NcaSvc, iphl…
Winmgmt Running Automatic Windows Management Instrumentation {vmms, TPHKLO…
WinRM Running Automatic Windows Remote Management (WS-Management) {}
La commande Format-Table
suppose que les propriétés sont répertoriées dans l’ordre d’importance. La cmdlet tente donc d’afficher entièrement les propriétés les plus proches du début. Si la commande Format-Table
ne peut pas afficher toutes les propriétés, elle supprime certaines colonnes de l’affichage. Vous pouvez voir ce comportement dans l’exemple précédent de la propriété DependentServices.
Retour automatique à la ligne de la sortie de l’applet de commande Format-Table dans les colonnes
Vous pouvez forcer le retour automatique à la ligne des données Format-Table
retournées en nombre dans leur colonne d’affichage en utilisant le paramètre Wrap. L’utilisation du paramètre Wrap peut ne pas faire ce que vous attendez, car il utilise les paramètres par défaut si vous ne spécifiez pas non plus autoSize:
Get-Service -Name win* |
Format-Table -Property Name, Status, StartType, DisplayName, DependentServices -Wrap
Name Status StartType DisplayName DependentServi
ces
---- ------ --------- ----------- --------------
WinDefend Running Automatic Windows Defender Antivirus Service {}
WinHttpAutoProxySvc Running Manual WinHTTP Web Proxy Auto-Discovery Service {NcaSvc,
iphlpsvc}
Winmgmt Running Automatic Windows Management Instrumentation {vmms,
TPHKLOAD,
SUService,
smstsmgr…}
WinRM Running Automatic Windows Remote Management (WS-Management) {}
L’utilisation du paramètre Wrap par lui-même ne ralentit pas beaucoup le traitement. Toutefois, l’utilisation de AutoSize pour mettre en forme une liste de fichiers récursifs d’une grande structure de répertoires peut prendre beaucoup de temps et utiliser beaucoup de mémoire avant d’afficher les premiers éléments de sortie.
Si vous ne vous inquiétez pas de la charge système, AutoSize fonctionne correctement avec le paramètre Wrap. Les colonnes initiales utilisent toujours autant de largeur que nécessaire pour afficher les éléments sur une ligne, mais la colonne finale est encapsulée, si nécessaire.
Remarque
Certaines colonnes peuvent ne pas être affichées lorsque vous spécifiez d’abord les colonnes les plus larges. Pour obtenir de meilleurs résultats, spécifiez d’abord les plus petits éléments de données.
Dans l’exemple suivant, nous spécifions d’abord les propriétés les plus larges.
Get-Process -Name iexplore |
Format-Table -Wrap -AutoSize -Property FileVersion, Path, Name, Id
Même avec le retour automatique à la ligne, la dernière colonne Id est omise :
FileVersion Path Nam
e
----------- ---- ---
11.00.18362.1 (WinBuild.160101.0800) C:\Program Files (x86)\Internet Explorer\IEXPLORE.EXE iex
plo
re
11.00.18362.1 (WinBuild.160101.0800) C:\Program Files\Internet Explorer\iexplore.exe iex
plo
re
Organisation de la sortie de table
Un autre paramètre utile pour le contrôle de sortie tabulaire est GroupBy. Les listes tabulaires plus longues en particulier peuvent être difficiles à comparer. Le paramètre GroupBy groupe la sortie en fonction d’une valeur de propriété. Par exemple, nous pouvons regrouper des services en StartType pour faciliter l’inspection, en omettant la valeur StartType de la liste des propriétés :
Get-Service -Name win* | Sort-Object StartType | Format-Table -GroupBy StartType
StartType: Automatic
Status Name DisplayName
------ ---- -----------
Running WinDefend Windows Defender Antivirus Service
Running Winmgmt Windows Management Instrumentation
Running WinRM Windows Remote Management (WS-Managem…
StartType: Manual
Status Name DisplayName
------ ---- -----------
Running WinHttpAutoProxyS… WinHTTP Web Proxy Auto-Discovery Serv…