Étant donné le rôle si central des objets dans Windows PowerShell, plusieurs commandes natives ont été conçues pour utiliser des types d'objets arbitraires. La plus importante est la commande Get-Member .

La technique la plus simple pour analyser les objets retournés par une commande consiste à en diriger la sortie vers l'applet de commande Get-Member . L'applet de commande Get-Member vous indique le nom formel du type d'objet et une liste complète de ses membres. Le nombre des éléments retournés peut parfois être écrasant. Par exemple, un objet Process peut avoir plus de 100 membres.

Pour afficher tous les membres d'un objet Process et paginer la sortie afin que vous puissiez en consulter l'intégralité, tapez :

PS> Get-Process | Get-Member | Out-Host -Paging

La sortie de cette commande sera semblable à la suivante :

   TypeName: System.Diagnostics.Process

Name                           MemberType     Definition
----                           ----------     ----------
Handles                        AliasProperty  Handles = Handlecount
Name                           AliasProperty  Name = ProcessName
NPM                            AliasProperty  NPM = NonpagedSystemMemorySize
PM                             AliasProperty  PM = PagedMemorySize
VM                             AliasProperty  VM = VirtualMemorySize
WS                             AliasProperty  WS = WorkingSet
add_Disposed                   Method         System.Void add_Disposed(Event...
...

Nous pouvons rendre cette longue liste d'informations plus exploitable en appliquant un filtre de façon à n'afficher que les éléments qui nous intéressent. La commande Get-Member vous permet de ne répertorier que les membres qui sont des propriétés. Il existe plusieurs formes de propriétés. L'applet de commande affiche tous les types de propriétés si nous affectons la valeur Properties au paramètre Get-Member MemberType. La liste obtenue reste très longue, mais un peu plus facile à gérer :

PS> Get-Process | Get-Member -MemberType Properties


   TypeName: System.Diagnostics.Process

Name                       MemberType     Definition
----                       ----------     ----------
Handles                    AliasProperty  Handles = Handlecount
Name                       AliasProperty  Name = ProcessName
...
ExitCode                   Property       System.Int32 ExitCode {get;}
...
Handle                     Property       System.IntPtr Handle {get;}
...
CPU                        ScriptProperty System.Object CPU {get=$this.Total...
...
Path                       ScriptProperty System.Object Path {get=$this.Main...
...
Remarque :

Les valeurs autorisées de MemberType sont AliasProperty, CodeProperty, Property, NoteProperty, ScriptProperty, Properties, PropertySet, Method, CodeMethod, ScriptMethod, Methods, ParameterizedProperty, MemberSet et All.

Il existe plus de 60 propriétés pour un processus. La raison pour laquelle Windows PowerShell n'indique souvent que quelques-unes des propriétés d'un objet connu est que les afficher toutes produirait un volume d'informations difficilement gérable.

Remarque :

Windows PowerShell détermine comment afficher un type d'objet en s'appuyant sur les informations stockées dans des fichiers XML dont le nom se termine par .format.ps1xml. Les données de mise en forme des objets Process, qui sont des objets .NET System.Diagnostics.Process, sont stockées dans PowerShellCore.format.ps1xml.

Si vous devez consulter des propriétés autres que celles qu'affiche Windows PowerShell par défaut, vous devrez mettre en forme vous-même les données de sortie. Vous pouvez pour ce faire utiliser les applets de commande Format.




Table des matières