Affichage de la structure d’objets
Étant donné que les objets jouent un rôle central dans PowerShell, il existe plusieurs commandes natives conçues pour fonctionner avec des types d’objets arbitraires. La plus importante est l’applet de commande Get-Member
.
La technique la plus simple pour analyser les objets qu’une commande retourne consiste à diriger sa sortie vers l’applet de commande Get-Member
. L’applet de commande Get-Member
affiche le nom formel du type d’objet et la liste complète de ses membres. Le nombre d’éléments retournés est parfois écrasant. Par exemple, un objet de processus peut avoir plus de 100 membres.
La commande suivante vous permet de voir tous les membres d’un objet et d’une page Process à travers la sortie.
Get-Process | Get-Member | Out-Host -Paging
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...
...
Vous pouvez rendre cette longue liste d’informations plus utilisable en filtrant les éléments que vous souhaitez voir. La commande Get-Member
permet de répertorier uniquement les membres qui sont des propriétés. Il existe plusieurs formes de propriétés. La cmdlet affiche les propriétés d’un type à l’aide du paramètre MemberType avec la valeur Properties
. La liste obtenue reste très longue, mais est plus gérable :
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...
...
Notes
Les valeurs de MemberType autorisées AliasProperty, CodeProperty, Property, NoteProperty, ScriptProperty, Properties, PropertySet, Method, CodeMethod, ScriptMethod, Methods, ParameterizedProperty, MemberSet et All.
Plus de 60 propriétés sont applicables à un processus. Par défaut, PowerShell détermine le mode d’affichage d’un type d’objet à l’aide des informations stockées dans des fichiers XML dont le nom se termine par .format.ps1xml
. La définition de mise en forme des objets de processus est stockée dans DotNetTypes.format.ps1xml
.
Si vous avez besoin d’examiner les propriétés autres que celles que PowerShell affiche par défaut, vous devez mettre en forme les données de sortie avec les cmdlets Format-*
.