Poiché gli oggetti rivestono un ruolo centrale in Windows PowerShell, esistono vari comandi nativi ideati per il funzionamento con tipi di oggetto arbitrari. Quello più importante è Get-Member .
La tecnica più semplice per analizzare gli oggetti restituiti da un comando consiste nel reindirizzare l'output di tale comando al cmdlet Get-Member . Il cmdlet Get-Member visualizza il nome formale del tipo di oggetto e l'elenco completo dei relativi membri. Il numero di elementi restituiti può talvolta essere eccessivo. Ad esempio, un oggetto processo può contenere oltre 100 membri.
Per visualizzare tutti i membri di un oggetto processo e impaginare l'output così da poterlo visualizzare per intero, digitare:
PS> Get-Process | Get-Member | Out-Host -Paging
L'output di questo comando è simile al seguente:
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... ...
È possibile rendere più snello questo lungo elenco scegliendo i soli elementi che si desidera visualizzare. Il comando Get-Member consente di visualizzare solo i membri che sono proprietà. Esistono varie forme di proprietà. Il cmdlet consente di visualizzare le proprietà di qualsiasi tipo se il parametro Get-Member MemberType viene impostato sul valore Properties. L'elenco risultante è ancora molto lungo ma leggermente più gestibile:
PS> 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... ...
Nota | |
I valori consentiti per MemberType sono AliasProperty, CodeProperty, Property, NoteProperty, ScriptProperty, Properties, PropertySet, Method, CodeMethod, ScriptMethod, Methods, ParameterizedProperty, MemberSet e All. |
Esistono oltre 60 proprietà per un processo. Il motivo per cui in Windows PowerShell vengono spesso visualizzate solo alcune proprietà per un oggetto noto è che verrebbe prodotta una quantità ingestibile di informazioni se fossero visualizzate tutte le proprietà.
Nota | |
Windows PowerShell determina il modo in cui visualizzare un tipo di oggetto avvalendosi delle informazioni memorizzate nei file XML i cui nomi terminano in .format.ps1xml. I dati di formattazione per gli oggetti processo, che sono oggetti .NET System.Diagnostics.Process, sono archiviati in PowerShellCore.format.ps1xml. |
Se occorre esaminare proprietà diverse da quelle visualizzate da Windows PowerShell per impostazione predefinita, è necessario formattare personalmente i dati di output mediante i cmdlet di formattazione.