2.2 : Get-Member : ouvrir la pièce pour voir ce qu’elle contient

Depuis la leçon 1.2, on répète que PowerShell manipule de vrais objets. Mais concrètement, qu’est-ce qu’il y a « dans » un objet ? Sophie vous tend une pièce sortie du tapis roulant : « Avant de la trier ou de la transformer, apprends à la retourner dans tous les sens pour voir ce qu’elle contient vraiment. »

L’outil pour ça s’appelle Get-Member.

Ouvrir un objet Process

Prenons un seul processus, et passons-le à Get-Member :

Get-Process -Name pwsh | Get-Member

Vous obtenez une longue liste, divisée en deux grandes catégories :

  • Properties : les caractéristiques de l’objet (Id, ProcessName, WS, CPU, StartTime…) — un peu comme la fiche technique d’une pièce
  • Methods : les actions que l’objet sait exécuter lui-même (Kill(), Refresh()…) — les outils intégrés à la pièce

En haut du résultat, une ligne vous indique aussi le type exact de l’objet :

TypeName: System.Diagnostics.Process

Ce nom n’est pas anodin : il vient du framework .NET sur lequel PowerShell est construit. Retenez simplement que chaque cmdlet renvoie des objets d’un type précis, et que ce type détermine toutes les propriétés disponibles.

Pourquoi c’est la cmdlet la plus utile de toute la formation

Face à une cmdlet inconnue, plutôt que de deviner ou de chercher sur Internet quelles propriétés sont disponibles, le réflexe à prendre est systématique :

Get-Service | Get-Member
Get-ChildItem | Get-Member
Get-ADUser -Filter * | Get-Member

À chaque fois, vous découvrez la liste exacte des propriétés que vous pourrez ensuite filtrer, trier ou afficher — les sujets des prochaines leçons.

Filtrer l’affichage de Get-Member

Sur un objet complexe, la liste peut être longue. Pour ne voir que les propriétés (sans les méthodes)

Get-Process -Name pwsh | Get-Member -MemberType Property

Accéder directement à une propriété

Une fois qu’on connaît le nom d’une propriété grâce à Get-Member, on peut y accéder directement avec un point :

$proc = Get-Process -Name pwsh
$proc.WS
$proc.StartTime

C’est cette mécanique — propriété identifiée via Get-Member, puis exploitée avec un point ou dans le pipeline — qui est à la base de tout script PowerShell un peu sérieux.

Petit rituel à adopter dès maintenant : face à n’importe quelle cmdlet nouvelle, le premier réflexe n’est pas de chercher sur Internet, c’est de faire NomDeLaCmdlet | Get-Member. Neuf fois sur dix, la réponse à votre question est déjà là.

Dans la prochaine leçon, on relie plusieurs postes de travail entre eux grâce au pipeline |, pour faire circuler ces objets d’une cmdlet à l’autre.