Sophie s’arrête en bout de chaîne : « Une fois que les pièces sont triées et filtrées, il reste deux choses à faire : bien les présenter, et parfois les analyser plus finement avant de livrer le résultat. » Voici les six derniers postes de cette section, ceux qu’on trouve généralement en toute fin de tapis roulant.
Format-Table : l’affichage en colonnes
Par défaut, PowerShell choisit lui-même comment afficher un résultat — souvent déjà sous forme de tableau. Format-Table permet de reprendre la main sur cet affichage :
Get-Process | Format-Table -Property ProcessName, Id, WS -AutoSize-AutoSize ajuste la largeur des colonnes au contenu réel, souvent plus lisible que l’affichage par défaut.
Point important : Format-Table casse le pipeline. Une fois passé par Format-Table, le résultat n’est plus une collection d’objets utilisables (Get-Member derrière renverra un type d’affichage, pas vos objets Process). Cette cmdlet doit donc toujours être la dernière du tapis, jamais suivie de Where-Object ou Sort-Object.
Format-List : l’affichage détaillé, une propriété par ligne
Quand un objet a beaucoup de propriétés, ou qu’on veut simplement tout voir en détail plutôt qu’en colonnes serrées :
Get-Process -Name pwsh | Format-List -Property *Le * demande d’afficher toutes les propriétés disponibles, une par ligne — pratique pour explorer un objet inconnu en complément de Get-Member.
Out-GridView : une fenêtre interactive (Windows uniquement)
Sur Windows, Out-GridView ouvre une véritable fenêtre graphique avec tri et filtre interactifs à la souris — un vrai confort pour explorer un gros résultat sans tout retaper en ligne de commande :
Get-Process | Out-GridViewComme évoqué en leçon 1.3, cette cmdlet dépend d’une brique Windows (elle nécessite le module
Microsoft.PowerShell.GraphicalToolssur PowerShell 7, et n’est pas disponible sur Linux/macOS). Sur un poste Windows classique avec Windows PowerShell 5.1, elle fonctionne nativement.
Group-Object : regrouper les pièces par catégorie
Group-Object répartit les objets en groupes selon une propriété commune, un peu comme des casiers étiquetés à l’atelier :
Get-Service | Group-Object -Property StatusRésultat : un groupe pour chaque valeur distincte de Status (Running, Stopped…), avec le nombre d’éléments dans chacun (Count). Utile pour un premier coup d’œil rapide : « combien de services sont arrêtés, combien sont démarrés ? »
Measure-Object : mesurer une collection de pièces
Measure-Object calcule des statistiques simples sur une propriété numérique : somme, moyenne, minimum, maximum.
Get-Process | Measure-Object -Property WS -Sum -Average -MaximumC’est la cmdlet qu’on utilisait déjà en filigrane en TP de la section 1 pour compter des objets (Measure-Object sans propriété renvoie simplement le Count).
Compare-Object : repérer les différences entre deux pièces
Compare-Object compare deux collections et indique ce qui diffère — extrêmement utile pour un audit (« quels services ont changé entre deux serveurs censés être identiques ? ») :
$servicesSRV01 = Get-Service -ComputerName SRV-01 | Select-Object -ExpandProperty Name
$servicesSRV02 = Get-Service -ComputerName SRV-02 | Select-Object -ExpandProperty Name
Compare-Object -ReferenceObject $servicesSRV01 -DifferenceObject $servicesSRV02La colonne SideIndicator du résultat indique le sens de la différence : <= pour un élément présent uniquement dans $servicesSRV01, => pour un élément présent uniquement dans $servicesSRV02.
Un exemple qui combine plusieurs postes
Get-Service |
Group-Object -Property Status |
Sort-Object -Property Count -Descending |
Format-Table -Property Name, Count -AutoSizeIci : on regroupe par statut, on trie les groupes par taille décroissante, puis on formate proprement en tableau — avec Format-Table bien en dernière position, comme convenu plus haut.
Retenez la distinction entre ces deux familles :
Group-Object,Measure-ObjectetCompare-Objectanalysent vos objets et renvoient encore des objets exploitables ;Format-Table,Format-ListetOut-GridViewne servent qu’à présenter un résultat final, et doivent toujours clore le tapis roulant
Dans la prochaine leçon, un TP pour mettre en pratique tout le trio de tri de la 2.4, avant de refermer cette section.