Como os objetos representam uma função central no Windows PowerShell, há vários comandos nativos projetados para trabalhar com tipos de objetos arbitrários. O mais importante deles é o comando Get-Member .
A técnica mais simples de análise dos objetos retornados por um comando é enviar a saída do comando pelo pipeline para o cmdlet Get-Member . O cmdlet Get-Member mostra o nome formal do tipo de objeto e uma listagem completa de seus membros. O número de elementos retornado algumas vezes pode ser assombroso. Por exemplo, um objeto de processo pode ter mais de 100 membros.
Para ver todos os membros de um objeto Process e paginar a saída para que tudo seja exibido, digite:
PS> Get-Process | Get-Member | Out-Host -Paging
A saída desse comando será algo parecido com isto:
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... ...
Podemos tornar essa longa lista de informações mais utilizável se filtrarmos os elementos que desejamos ver. O comando Get-Member permite que você liste somente os membros que são propriedades. Há várias formas de propriedades. O cmdlet exibirá propriedades de qualquer tipo se definirmos o parâmetro Get-Member MemberType como valor de Properties. A lista resultante ainda é muito extensa, mas um pouco mais gerenciável:
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... ...
Observação: | |
Os valores permitidos de MemberType são AliasProperty, CodeProperty, Property, NoteProperty, ScriptProperty, Properties, PropertySet, Method, CodeMethod, ScriptMethod, Methods, ParameterizedProperty, MemberSet e All. |
Há mais de 60 propriedades para um processo. O Windows PowerShell muitas vezes exibe apenas algumas propriedades para qualquer objeto bem conhecido porque mostrar todas elas produziria uma quantidade não gerenciável de informações.
Observação: | |
O Windows PowerShell determina como exibir um tipo de objeto usando as informações armazenadas em arquivos XML que têm nomes terminados em .format.ps1xml. Os dados de formatação de objetos de processo, que são objetos System.Diagnostics.Process do .NET, são armazenados em PowerShellCore.format.ps1xml. |
Se você precisar consultar propriedades diferentes daquelas exibidas pelo Windows PowerShell por padrão, terá de formatar os dados de saída por conta própria. Isso pode ser feito com a ajuda dos cmdlets de formatação.