Wyświetlanie struktury obiektu (Get-Member)Viewing Object Structure (Get-Member)

Ponieważ obiekty odgrywają taką rolę centralną w programie Windows PowerShell, istnieje kilka poleceń natywnych przeznaczonych do pracy z dowolnymi typami obiektów.Because objects play such a central role in Windows PowerShell, there are several native commands designed to work with arbitrary object types. Najważniejszym z nich jest polecenie Get-member .The most important one is the Get-Member command.

Najprostszą techniką analizowania obiektów zwracanych przez polecenie jest potok danych wyjściowych polecenia cmdlet Get-member .The simplest technique for analyzing the objects that a command returns is to pipe the output of that command to the Get-Member cmdlet. Polecenie cmdlet Get-member pokazuje formalną nazwę typu obiektu i pełną listę jego członków.The Get-Member cmdlet shows you the formal name of the object type and a complete listing of its members. Liczba zwracanych elementów może czasami być przeciążona.The number of elements that are returned can sometimes be overwhelming. Na przykład obiekt procesu może mieć ponad 100 elementów członkowskich.For example, a process object can have over 100 members.

Aby wyświetlić wszystkie elementy członkowskie obiektu procesu i strony wyjściowe, aby można było wyświetlić wszystkie z nich, wpisz:To see all the members of a Process object and page the output so you can view all of it, type:

Get-Process | Get-Member | Out-Host -Paging

Dane wyjściowe tego polecenia będą wyglądać następująco:The output from this command will look something like this:

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

Ta długa lista informacji może być bardziej użyteczna przez filtrowanie dla elementów, które chcemy zobaczyć.We can make this long list of information more usable by filtering for elements we want to see. Polecenie Get-member umożliwia wyświetlenie tylko elementów członkowskich, które są właściwościami.The Get-Member command lets you list only members that are properties. Istnieje kilka form właściwości.There are several forms of properties. Polecenie cmdlet wyświetla właściwości dowolnego typu, jeśli ustawimy parametr DataMember elementu MemberType we właściwościachwartości.The cmdlet displays properties of any type if we set the Get-Member MemberType parameter to the value Properties. Lista wyników nadal jest bardzo długa, ale jest to nieco łatwiejsze do zarządzania:The resulting list is still very long, but a bit more manageable:

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

Uwaga

Dozwolone wartości elementów MemberType to AliasProperty, CodeProperty, Property, NoteProperty, ScriptProperty, Properties, PropertySet —, Method, CodeMethod, ScriptMethod, Methods, ParameterizedProperty, MemberSet i ALL.The allowed values of MemberType are AliasProperty, CodeProperty, Property, NoteProperty, ScriptProperty, Properties, PropertySet, Method, CodeMethod, ScriptMethod, Methods, ParameterizedProperty, MemberSet, and All.

Dla procesu istnieje ponad 60 właściwości.There are over 60 properties for a process. W programie Windows PowerShell często są wyświetlane tylko kilku właściwości dla dowolnego dobrze znanego obiektu, który pokazuje, że wszystkie z nich wydają niezarządzaną ilość informacji.The reason Windows PowerShell often shows only a handful of properties for any well-known object is that showing all of them would produce an unmanageable amount of information.

Uwaga

Program Windows 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.Windows PowerShell determines how to display an object type by using information stored in XML files that have names ending in .format.ps1xml. Dane formatowania dla obiektów procesów, które są obiektami .NET system. Diagnostics. Process, są przechowywane w DotNetTypes.format.ps1XML.The formatting data for process objects, which are .NET System.Diagnostics.Process objects, is stored in DotNetTypes.format.ps1xml.

Jeśli chcesz obejrzeć właściwości inne niż te, które są wyświetlane domyślnie przez program Windows PowerShell, musisz samodzielnie sformatować dane wyjściowe.If you need to look at properties other than those that Windows PowerShell displays by default, you will need to format the output data yourself. Można to zrobić za pomocą poleceń cmdlet w formacie.This can be done by using the format cmdlets.