Wyświetlanie struktury obiektów
Ponieważ obiekty odgrywają taką centralną rolę w programie PowerShell, istnieje kilka natywnych poleceń przeznaczonych do pracy z dowolnymi typami obiektów. Najważniejszą Get-Member
z nich jest polecenie .
Najprostszą techniką analizowania obiektów zwracanych przez polecenie jest potok danych wyjściowych tego polecenia do Get-Member
polecenia cmdlet. Polecenie Get-Member
cmdlet wyświetla formalną nazwę typu obiektu i pełną listę jego elementów członkowskich. Liczba zwracanych elementów może czasami być przytłaczająca. Na przykład obiekt procesu może mieć ponad 100 elementów członkowskich.
Następujące polecenie umożliwia wyświetlenie wszystkich elementów członkowskich obiektu Process i strony za pośrednictwem danych wyjściowych.
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...
...
Dzięki filtrowaniu elementów, które chcemy zobaczyć, możemy uczynić tę długą listę informacji bardziej użytecznymi. Polecenie Get-Member
umożliwia wyświetlenie listy tylko elementów członkowskich, które są właściwościami. Istnieje kilka form właściwości. Polecenie cmdlet wyświetla właściwości typu przy użyciu parametru MemberType z wartością Properties
. Wynikowa lista jest nadal bardzo długa, ale bardziej zarządzalna:
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...
...
Uwaga
Dozwolone wartości parametru MemberType to AliasProperty, CodeProperty, Property, NoteProperty, ScriptProperty, Properties, PropertySet, Method, CodeMethod, ScriptMethod, Methods, ParameterizedProperty, MemberSet i All.
Proces zawiera więcej niż 60 właściwości. Domyślnie program PowerShell określa sposób wyświetlania typu obiektu przy użyciu informacji przechowywanych w plikach XML, które mają nazwy kończące się na ..format.ps1xml
Definicja formatowania obiektów procesu jest przechowywana w pliku DotNetTypes.format.ps1xml
.
Jeśli musisz przyjrzeć się właściwościom innym niż te, które program PowerShell wyświetla domyślnie, możesz sformatować dane wyjściowe przy użyciu Format-*
poleceń cmdlet.