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.