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.




Argomenti della Guida