Objectstructuur weergeven
Omdat objecten een dergelijke centrale rol spelen in PowerShell, zijn er verschillende systeemeigen opdrachten ontworpen om te werken met willekeurige objecttypen. De belangrijkste is de Get-Member
opdracht.
De eenvoudigste techniek voor het analyseren van de objecten die een opdracht retourneert, is door de uitvoer van die opdracht door te geven aan de Get-Member
cmdlet. De Get-Member
cmdlet toont u de formele naam van het objecttype en een volledige lijst met de leden. Het aantal geretourneerde elementen kan soms overweldigend zijn. Een procesobject kan bijvoorbeeld meer dan 100 leden hebben.
Met de volgende opdracht kunt u alle leden van een procesobject en de uitvoer bekijken.
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...
...
We kunnen deze lange lijst met informatie bruikbaarder maken door te filteren op elementen die we willen zien. Met de Get-Member
opdracht kunt u alleen leden weergeven die eigenschappen zijn. Er zijn verschillende soorten eigenschappen. Met de cmdlet worden eigenschappen van een type weergegeven met behulp van de parameter MemberType met de waarde Properties
. De resulterende lijst is nog steeds erg lang, maar een beter beheerbaar:
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...
...
Notitie
De toegestane waarden van MemberType zijn AliasProperty, CodeProperty, Property, NoteProperty, ScriptProperty, Properties, PropertySet, Method, CodeMethod, ScriptMethod, Methods, ParameterizedProperty, MemberSet en All.
Er zijn meer dan 60 eigenschappen voor een proces. PowerShell bepaalt standaard hoe een objecttype wordt weergegeven met behulp van gegevens die zijn opgeslagen in XML-bestanden met namen die eindigen op .format.ps1xml
. De opmaakdefinitie voor procesobjecten wordt opgeslagen in DotNetTypes.format.ps1xml
.
Als u andere eigenschappen wilt bekijken dan de eigenschappen die powerShell standaard weergeeft, kunt u de uitvoer opmaken met behulp van de Format-*
cmdlets.