Objectstructuur weergeven (Get-Member)
Omdat objecten een dergelijke centrale rol spelen in Windows PowerShell, zijn er verschillende native 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 se pijpen naar de Get-Member cmdlet . In Get-Member de cmdlet ziet u de formele naam van het objecttype en een volledige lijst met de leden. Het aantal elementen dat wordt geretourneerd, kan soms overweldigend zijn. Een procesobject kan bijvoorbeeld meer dan 100 leden hebben.
Als u alle leden van een procesobject wilt zien en de uitvoer wilt weergeven, typt u:
Get-Process | Get-Member | Out-Host -Paging
De uitvoer van deze opdracht ziet er als volgende uit:
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 Get-Member de opdracht kunt u alleen leden weergeven die eigenschappen zijn. Er zijn verschillende soorten eigenschappen. De cmdlet geeft eigenschappen van elk type weer als we de parameter MemberType instellen op de waarde Properties. De resulterende lijst is nog steeds erg lang, maar iets beter beheersbaar:
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. De reden Windows PowerShell vaak slechts een handjevol eigenschappen voor een bekend object laat zien, is dat het weergeven van al deze objecten een onmaneerbare hoeveelheid informatie zou opleveren.
Notitie
Windows PowerShell bepaalt hoe u een objecttype we weergeven met behulp van informatie die is opgeslagen in XML-bestanden met namen die eindigen op .format.ps1xml. De opmaakgegevens voor procesobjecten, die .NET System.Diagnostics.Process-objecten zijn, worden opgeslagen in DotNetTypes.format.ps1xml.
Als u andere eigenschappen wilt bekijken dan de eigenschappen die Windows PowerShell standaard worden weergegeven, moet u de uitvoergegevens zelf opmaken. U kunt dit doen met behulp van de indelings-cmdlets.