Anzeigen einer Objektstruktur
Weil Objekte in PowerShell eine so zentrale Rolle spielen, gibt es mehrere native Befehle, die zum Arbeiten mit beliebigen Objekttypen vorgesehen sind. Der wichtigste dieser Befehle ist der Befehl Get-Member
.
Die einfachste Methode zum Analysieren der Objekte, die von einem Befehl zurückgegeben werden, besteht darin, die Ausgabe dieses Befehls an das Cmdlet Get-Member
weiterzuleiten. Das Cmdlet Get-Member
zeigt den formalen Objekttypnamen sowie eine vollständige Liste der Member des Objekts an. Die Anzahl von zurückgegebenen Elementen kann manchmal überwältigend sein. Beispielsweise kann ein Prozessobjekt mehr als 100 Member haben.
Mit dem folgenden Befehl können Sie alle Member eines Process-Objekts und einer Seite über die Ausgabe anzeigen.
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...
...
Diese lange Liste von Informationen lässt sich nutzbarer machen, indem Sie nach den jeweils gewünschten Elementen filtern. Der Befehl Get-Member
ermöglicht es Ihnen, nur Member aufzulisten, die Eigenschaften sind. Es gibt mehrere Typen von Eigenschaften. Das Cmdlet zeigt Eigenschaften eines Typs mithilfe des MemberType-Parameters mit dem Wert Properties
an. Die Ergebnisliste ist immer noch sehr lang, aber besser zu handhaben:
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...
...
Hinweis
„MemberType“ hat die folgenden zulässigen Werte: AliasProperty, CodeProperty, Property, NoteProperty, ScriptProperty, Properties, PropertySet, Method, CodeMethod, ScriptMethod, Methods, ParameterizedProperty, MemberSet und All.
Es gibt mehr als 60 Eigenschaften für einen Prozess. Standardmäßig bestimmt PowerShell anhand der Informationen, die in XML-Dateien gespeichert sind, deren Namen mit .format.ps1xml
enden, wie ein Objekttyp angezeigt werden soll. Die Formatierungsdefinition für Prozessobjekte wird in DotNetTypes.format.ps1xml
gespeichert.
Wenn Sie Eigenschaften anzeigen müssen, die nicht standardmäßig von PowerShell angezeigt werden, können Sie die Ausgabe mit den Format-*
-Cmdlets formatieren.