Da Objekte eine so zentrale Rolle in Windows PowerShell spielen, gibt es eine Reihe systemeigener Befehle für die Arbeit mit beliebigen Objekttypen. Der wichtigste Befehl ist Get-Member .
Das einfachste Verfahren zum Analysieren der von einem Befehl zurückgegebenen Objekte besteht darin, die Ausgabe dieses Befehls über eine Pipeline an das Cmdlet Get-Member zu übergeben. Das Cmdlet Get-Member zeigt den formalen Namen des Objekttyps sowie eine vollständige Liste der zugehörigen Elemente an. Die Anzahl der zurückgegebenen Elemente ist teilweise sehr groß. Ein process-Objekt kann z. B. mehr als 100 Elemente enthalten.
Wenn Sie alle Elemente eines Process-Objekts anzeigen möchten und die Anzeige seitenweise erfolgen soll, geben Sie Folgendes ein:
PS> Get-Process | Get-Member | Out-Host -Paging
Die Ausgabe dieses Befehls sollte in etwa wie folgt aussehen:
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... ...
Sie können diese lange Liste von Informationen einfacher verwendbar machen, indem Sie die Elemente filtern. Mit dem Befehl Get-Member können Sie nur die Elemente auflisten, bei denen es sich um Eigenschaften handelt. Es gibt mehrere Arten von Eigenschaften. Das Cmdlet zeigt Eigenschaften aller Typen an, wenn Sie den MemberType-Parameter von Get-Member auf Properties festlegen. Die resultierende Liste ist dann zwar immer noch sehr lang, aber schon etwas übersichtlicher:
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... ...
Hinweis: | |
Die zulässigen Werte für MemberType sind AliasProperty, CodeProperty, Property, NoteProperty, ScriptProperty, Properties, PropertySet, Method, CodeMethod, ScriptMethod, Methods, ParameterizedProperty, MemberSet und All. |
Ein Prozess kann mehr als 60 Eigenschaften enthalten. Die Ursache dafür, dass in Windows PowerShell häufig nur ein Teil der Eigenschaften für häufig verwendete Objekte angezeigt wird, ist die ansonsten nicht überschaubare Menge an Informationen.
Hinweis: | |
Windows PowerShell bestimmt mithilfe von Informationen in XML-Dateien, die die Dateinamenendung ".format.ps1xml" aufweisen, wie ein Objekttyp angezeigt wird. Die Formatierungsdaten für process-Objekte, bei denen es sich um .NET System.Diagnostics.Process-Objekte handelt, werden in der Datei "PowerShellCore.format.ps1xml" gespeichert. |
Wenn Sie andere Eigenschaften als die von Windows PowerShell standardmäßig angezeigten Eigenschaften anzeigen möchten, müssen Sie die Ausgabedaten selbst formatieren. Sie können dies mit Format-Cmdlets ausführen.