Visa objektstrukturen (Get-Member)

Eftersom objekt har en sådan central roll i Windows PowerShell finns det flera inbyggda kommandon som är utformade för att fungera med godtyckliga objekttyper. Den viktigaste är Get-Member kommandot .

Den enklaste metoden för att analysera de objekt som ett kommando returnerar är att skicka kommandots utdata till Get-Member cmdleten . Get-MemberCmdleten visar det formella namnet på objekttypen och en fullständig lista över dess medlemmar. Antalet element som returneras kan ibland vara överväldigande. Ett processobjekt kan till exempel ha över 100 medlemmar.

Om du vill se alla medlemmar i ett processobjekt och visa utdata så att du kan visa allt skriver du:

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

Utdata från det här kommandot ser ut ungefär så här:

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

Vi kan göra den här långa listan med information mer användbar genom att filtrera efter element som vi vill se. Med Get-Member kommandot kan du endast visa medlemmar som är egenskaper. Det finns flera typer av egenskaper. Cmdleten visar egenskaper av valfri typ om vi anger parametern MemberType till värdet Egenskaper. Den resulterande listan är fortfarande mycket lång, men lite mer hanterbar:

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

Anteckning

Tillåtna värden för MemberType är AliasProperty, CodeProperty, Property, NoteProperty, ScriptProperty, Properties, PropertySet, Method, CodeMethod, ScriptMethod, Methods, ParameterizedProperty, MemberSet och All.

Det finns över 60 egenskaper för en process. Anledningen Windows PowerShell visar ofta bara en handfull egenskaper för ett välkänt objekt är att om alla visas skulle det ge en ohantabel mängd information.

Anteckning

Windows PowerShell hur du visar en objekttyp med hjälp av information som lagras i XML-filer som har namn som slutar på .format.ps1xml. Formateringsdata för processobjekt, som är .NET System.Diagnostics.Process-objekt, lagras i DotNetTypes.format.ps1xml.

Om du behöver titta på andra egenskaper än de som Windows PowerShell visas som standard måste du formatera utdata själv. Detta kan göras med hjälp av cmdletarna format.