Visa objektstruktur
Eftersom objekt spelar en så central roll i PowerShell finns det flera interna kommandon som är utformade för att fungera med godtyckliga objekttyper. Den viktigaste är Get-Member
kommandot.
Den enklaste tekniken för att analysera de objekt som ett kommando returnerar är att skicka utdata från kommandot till cmdleten Get-Member
. Cmdleten Get-Member
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.
Med följande kommando kan du se alla medlemmar i ett processobjekt och bläddra igenom utdata.
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...
...
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 bara visa en lista över medlemmar som är egenskaper. Det finns flera former av egenskaper. Cmdleten visar egenskaper för en typ med parametern MemberType med värdet Properties
. Den resulterande listan är fortfarande mycket lång, men en 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...
...
Kommentar
De tillåtna värdena för MemberType är AliasProperty, CodeProperty, Property, NoteProperty, ScriptProperty, Properties, PropertySet, Method, CodeMethod, ScriptMethod, Methods, ParameterizedProperty, MemberSet och All.
Det finns mer än 60 egenskaper för en process. Som standard bestämmer PowerShell hur en objekttyp ska visas med hjälp av information som lagras i XML-filer med namn som slutar på .format.ps1xml
. Formateringsdefinitionen för processobjekt lagras i DotNetTypes.format.ps1xml
.
Om du behöver titta på andra egenskaper än de som PowerShell visar som standard kan du formatera utdata med hjälp av Format-*
cmdletarna.