Assurez-vous de lire les articles précédents de la série:
- Apprenez à automatiser Windows avec PowerShell
- Apprendre à utiliser les cmdlets dans PowerShell
- Apprendre à utiliser des objets dans PowerShell
Et restez à l’écoute pour le reste de la série toute la semaine.
Formatage par défaut
Lorsque j'ai débuté avec PowerShell, je pensais que tout était magique, mais la vérité est qu'il faut un peu de temps pour comprendre ce qui se passe sous le capot. Il en va de même pour le système de formatage PowerShell. En fait, si vous exécutez la cmdlet Get-Service, la sortie générée ne vous montre que 3 propriétés: Status, Name et DisplayName.
notepad C:WindowsSystem32WindowsPowerShellv1.0DotNetTypes.format.ps1xml
Si nous utilisons la fonction Find du bloc-notes, nous pouvons rapidement passer à la section qui détaille la sortie de la cmdlet Get-Service en recherchant le type ServiceController.
Formater vos données
Si vous n'êtes pas satisfait du formatage par défaut d'un objet ou d'un type, vous pouvez lancer votre propre formatage. Pour cela, vous devez connaître trois cmdlets.
- Liste de format
- Format-Table
- Format-large
Format-large prend simplement une collection d'objets et affiche une propriété unique de chaque objet. Par défaut, il cherchera une propriété de nom; si vos objets ne contiennent pas de propriété de nom, il utilisera la première propriété de l'objet une fois que les propriétés ont été triées par ordre alphabétique.
Get-Service | Format-Wide
Get-Service | Format-Wide -Property DisplayName -Column 6
Cette vue tabulaire convient très bien à ce type d’informations, mais supposons que nous voulons la visualiser sous forme de liste. Tout ce que nous avons à faire est de le diriger vers Liste de format.
Get-Process | Format-List
Get-Process | Format-List –Property *
Get-Process | Format-List –Property name,id
Format-Table, D'autre part, prend des données et les transforme en une table. Puisque nos données provenant de Get-Process se présentent déjà sous la forme d’une table, nous pouvons l’utiliser pour choisir facilement les propriétés que nous souhaitons afficher dans la table. J'ai utilisé le paramètre AutoSize pour que toutes les données tiennent sur un seul écran.
Get-Process | Format-Table name,id –AutoSize
Filtrage et comparaison
L'une des meilleures choses à propos de l'utilisation d'un pipeline d'objet est que vous pouvez filtrer des objets hors du pipeline à tout moment à l'aide de la cmdlet Where-Object.
Get-Service | Where-Object {$_.Status -eq “Running”}
- eq (égal à)
- neq (différent de)
- gt (supérieur à)
- ge (Supérieur ou égal à)
- lt (moins que)
- le (inférieur ou égal à)
- comme (Wildcard String Match)
Une liste complète et davantage d’informations peuvent être consultées dans le fichier d’aide conceptuel about_comparison. Toutefois, il faut un certain temps pour s’habituer à la syntaxe Where-Obeject. C'est tout pour cette fois!