Zobrazení objektové struktury

Vzhledem k tomu, že objekty hrají v PowerShellu takovou centrální roli, existuje několik nativních příkazů navržených pro práci s libovolnými typy objektů. Nejdůležitější je příkaz Get-Member .

Nejjednodušší technikou analýzy objektů, které příkaz vrací, je nasměrování výstupu tohoto příkazu do rutiny Get-Member . Rutina Get-Member zobrazí formální název typu objektu a úplný výpis jeho členů. Počet vrácených prvků může být někdy ohromující. Například objekt procesu může mít více než 100 členů.

Následující příkaz umožňuje zobrazit všechny členy objektu Process a procházet výstup.

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...
...

Tento dlouhý seznam informací můžeme lépe využít filtrováním prvků, které chceme zobrazit. Příkaz Get-Member umožňuje vypsat pouze členy, které jsou vlastnosti. Existuje několik forem vlastností. Rutina zobrazí vlastnosti typu pomocí parametru MemberType s hodnotou Properties. Výsledný seznam je stále velmi dlouhý, ale lépe zvládnutelný:

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...
...

Poznámka

Povolené hodnoty MemberType jsou AliasProperty, CodeProperty, Property, NoteProperty, ScriptProperty, Properties, PropertySet, Method, CodeMethod, ScriptMethod, Methods, ParameterizedProperty, MemberSet a All.

Proces má více než 60 vlastností. PowerShell ve výchozím nastavení určuje, jak zobrazit typ objektu pomocí informací uložených v souborech XML, které mají názvy končící na .format.ps1xml. Definice formátování pro objekty procesu je uložena v DotNetTypes.format.ps1xmlsouboru .

Pokud se potřebujete podívat na jiné vlastnosti, než které powershell zobrazuje ve výchozím nastavení, můžete výstup naformátovat pomocí Format-* rutin.