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.