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.