Zobrazení struktury objektů
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 vrátí, je přesměrování výstupu tohoto příkazu do rutiny Get-Member
. Rutina Get-Member
zobrazuje formální název typu objektu a úplný seznam 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 Proces a stránku výstupem.
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 použít filtrováním prvků, které chceme zobrazit. Příkaz Get-Member
umožňuje vypsat pouze členy, které jsou vlastnostmi. 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 spravovatelný:
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í .format.ps1xml
. Definice formátování pro procesní objekty je uložena v DotNetTypes.format.ps1xml
.
Pokud se potřebujete podívat na jiné vlastnosti, než které PowerShell ve výchozím nastavení zobrazuje, můžete výstup formátovat pomocí Format-*
rutin.