Get-Member
Obtém as propriedades e os métodos de objetos.
Sintaxe
Get-Member [[-Name] <string[]>] [-Force] [-InputObject <psobject>] [-MemberType {<AliasProperty> | <CodeProperty> | <Property> | <NoteProperty> | <ScriptProperty> | <Properties> | <PropertySet> | <Method> | <CodeMethod> | <ScriptMethod> | <Methods> | <ParameterizedProperty> | <MemberSet> | <Event> | <All>}] [-Static] [-View {<Extended> | <Adapted> | <Base> | <All>}] [<CommonParameters>]
Descrição
O cmdlet Get-Member obtém os “membros” (propriedades e métodos) de objetos.
Para especificar o objeto, use o parâmetro InputObject ou envie um objeto para Get-Member. Para recuperar informações sobre membros estáticos (membros da classe, não da instância), use o parâmetro Static. Para obter somente certos tipos de membros, como NoteProperties, use o parâmetro MemberType.
Parâmetros
-Force
Adiciona os membros intrínsecos (PSBase, PSAdapted, PSObject, PSTypeNames) e os métodos get_ e set_ gerados por compilador à exibição. Por padrão, Get-Member obtém essas propriedades em todas as exibições diferentes de "Base" e "Adapted", mas não as exibe.
A lista abaixo descreve as propriedades adicionadas quando você usa o parâmetro Force:
-- PSBase: as propriedades originais do objeto .NET Framework sem extensão ou adaptação. São as propriedades definidas para a classe de objeto e listadas no MSDN.
--PSAdapted: as propriedades e os métodos definidos no sistema de tipo estendido do Windows PowerShell.
--PSExtended: as propriedades e os métodos adicionados aos arquivos Types.ps1xml ou por meio do cmdlet Add-Member.
-- PSObject: o adaptador que converte o objeto base em um objeto do Windows PowerShell PsObject.
--PSTypeNames: Uma lista de tipos de objeto que descrevem o objeto, em ordem de especificidade. Ao formatar o objeto, o Windows PowerShell procura os tipos nos arquivos Format.ps1xml no diretório de instalação Windows PowerShell ($pshome). Usa a definição de formatação para o primeiro tipo que localiza.
Necessário? |
false |
Posição? |
named |
Valor padrão |
|
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
false |
-InputObject <psobject>
Especifica o objeto cujos membros são recuperados.
Usar o parâmetro InputObject não é igual a canalizar um objeto para Get-Member. As diferenças são as seguintes:
-- Quando você canalizar uma coleção de objetos para Get-Member, Get-Member obtém os membros dos objetos individuais na coleção, como as propriedades dos inteiros em uma matriz de inteiros.
-- Quando você usa InputObject para enviar uma coleção de objetos, Get-Member obtém os membros da coleção, como as propriedades da matriz de inteiros.
Necessário? |
false |
Posição? |
named |
Valor padrão |
|
Aceitar entrada do pipeline? |
true (ByValue) |
Aceitar caracteres curinga? |
false |
-MemberType <PSMemberTypes>
Obtém apenas membros com o tipo de membro especificado. All é o padrão.
Os valores válidos para este parâmetro são:
-- AliasProperty: uma propriedade que define um novo nome para uma propriedade existente.
-- CodeMethod: um método que faz referência a um método estático de uma classe do .NET Framework.
-- CodeProperty: uma propriedade que faz referência a uma propriedade estática de uma classe do .NET Framework.
--Event: indica que o objeto envia uma mensagem para indicar uma ação ou uma alteração de estado.
-- MemberSet: uma coleção predefinida de propriedades e métodos, como PSBase, PSObject e PSTypeNames.
-- Method: um método do objeto .NET Framework subjacente.
-- NoteProperty: uma propriedade com um valor estático.
-- ParameterizedProperty: uma propriedade que utiliza parâmetros e valores de parâmetros.
-- Property: uma propriedade do objeto .NET Framework subjacente.
-- PropertySet: uma coleção predefinida de propriedades do objeto.
-- ScriptMethod: um método cujo valor é a saída de um script.
-- ScriptProperty: uma propriedade cujo valor é a saída de um script.
-- All: obtém todos os tipos de membro.
-- Methods: obtém todos os tipos de métodos do objeto (por exemplo, Method, CodeMethod, ScriptMethod).
-- Properties: obtém todos os tipos de propriedades do objeto (por exemplo, Property, CodeProperty, AliasProperty, ScriptProperty).
Nem todos os objetos possuem todos os tipos de membro. Se você especificar um tipo de membro que o objeto não possui, o Windows PowerShell devolverá um valor nulo.
Para obter tipos correlatos de membros, como todos os membros estendidos, use o parâmetro View. Se você usar o parâmetro MemberType com os parâmetros Static ou View, Get-Member obterá os membros que pertencem a ambos os conjuntos.
Necessário? |
false |
Posição? |
named |
Valor padrão |
|
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
false |
-Name <string[]>
Especifica os nomes de uma ou mais propriedades ou métodos do objeto. Get-Member obtém somente as propriedades e métodos especificados.
Se você usar o parâmetro Name com os parâmetros MemberType, Static ou View, Get-Member obterá somente os membros que satisfaçam os critérios de todos os parâmetros.
Para obter um membro estático através de nome, use o parâmetro Static com o parâmetro Name.
Necessário? |
false |
Posição? |
1 |
Valor padrão |
|
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
false |
-Static
Obtém somente as propriedades estáticas e os métodos do objeto.
São definidas propriedades estáticas e métodos na classe de objetos, não em qualquer instância da classe específica.
Se você usar o parâmetro Static com o parâmetro View, o parâmetro View será ignorado. Se você usar o parâmetro Static com o parâmetro MemberType, Get-Member obterá somente os membros que pertencem a ambos os conjuntos.
Necessário? |
false |
Posição? |
named |
Valor padrão |
|
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
false |
-View <PSMemberViewTypes>
Só obtém tipos específicos de membros (propriedades e métodos). Especifique um ou mais dos valores. O padrão é "Adapted, Extended".
Os valores válidos são:
-- Base: Obtém somente as propriedades e os métodos originais do objeto .NET Framework (sem extensão ou adaptação).
-- Adapted: Obtém somente as propriedades e os métodos definidos no sistema de tipo estendido do Windows PowerShell.
-- Extended: Obtém somente as propriedades e os métodos adicionados aos arquivos Types.ps1xml ou por meio do cmdlet Add-Member.
-- All: Obtém os membros nas exibições Base, Adapted e Extended.
O parâmetro View determina os membros recuperados, e não apenas a exibição desses membros.
Para obter tipos específicos de membros, como propriedades de script, use o parâmetro MemberType. Se você usar os parâmetros MemberType e View no mesmo comando, Get-Member obterá os membros que pertencem a ambos os conjuntos. Se você usar os parâmetros Static e View no mesmo comando, o parâmetro View será ignorado.
Necessário? |
false |
Posição? |
named |
Valor padrão |
|
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
false |
<CommonParameters>
Esse cmdlet oferece suporte aos parâmetros comuns: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Para obter mais informações, consulte about_Commonparameters.
Entradas e saídas
O tipo de entrada é o tipo dos objetos que você pode canalizar para o cmdlet. O tipo de retorno é o tipo dos objetos que o cmdlet retorna.
Entradas |
System.Management.Automation.PSObject Você pode canalizar qualquer objeto para Get-Member |
Saídas |
Microsoft.PowerShell.Commands.MemberDefinition Get-Member retorna um objeto para cada propriedade ou método que ele obtém. |
Observações
É possível recuperar informações sobre um objeto de coleta usando o parâmetro InputObject ou enviando o objeto, precedido por uma vírgula, para Get-Member.
Exemplo 1
C:\PS>get-service | get-member
TypeName: System.ServiceProcess.ServiceController
Name MemberType Definition
---- ---------- ----------
Name AliasProperty Name = ServiceName
Close Method System.Void Close()
Continue Method System.Void Continue()
CreateObjRef Method System.Runtime.Remoting.ObjRef CreateObjRef(Type requestedType)
Dispose Method System.Void Dispose()
Equals Method System.Boolean Equals(Object obj)
ExecuteCommand Method System.Void ExecuteCommand(Int32 command)
GetHashCode Method System.Int32 GetHashCode()
GetLifetimeService Method System.Object GetLifetimeService()
GetType Method System.Type GetType()
InitializeLifetimeService Method System.Object InitializeLifetimeService()
Pause Method System.Void Pause()
Refresh Method System.Void Refresh()
Start Method System.Void Start(), System.Void Start(String[] args)
Stop Method System.Void Stop()
ToString Method System.String ToString()
WaitForStatus Method System.Void WaitForStatus(ServiceControllerStatus desiredStatus), System.Voi...
CanPauseAndContinue Property System.Boolean CanPauseAndContinue {get;}
CanShutdown Property System.Boolean CanShutdown {get;}
CanStop Property System.Boolean CanStop {get;}
Container Property System.ComponentModel.IContainer Container {get;}
DependentServices Property System.ServiceProcess.ServiceController[] DependentServices {get;}
DisplayName Property System.String DisplayName {get;set;}
MachineName Property System.String MachineName {get;set;}
ServiceHandle Property System.Runtime.InteropServices.SafeHandle ServiceHandle {get;}
ServiceName Property System.String ServiceName {get;set;}
ServicesDependedOn Property System.ServiceProcess.ServiceController[] ServicesDependedOn {get;}
ServiceType Property System.ServiceProcess.ServiceType ServiceType {get;}
Site Property System.ComponentModel.ISite Site {get;set;}
Status Property System.ServiceProcess.ServiceControllerStatus Status {get;}
Descrição
-----------
Este comando exibe as propriedades e métodos dos objetos de processos (System.ServiceProcess.ServiceController) que são gerados pelo cmdlet Get-Service.
O comando usa o operador de pipeline (|) para enviar a saída de um comando Get-Service para Get-Member.
Como a parte Get-Member do comando não tem nenhum parâmetro, ele usa todos os valores padrão. Como tal, obtém todos os tipos de membro, mas não os membros estáticos e não exibe os membros intrínsecos.
Exemplo 2
C:\PS>get-service | get-member -force
C:\PS> (get-service -schedule).psbase
Descrição
-----------
Esse exemplo obtém todos os membros (propriedades e métodos) dos objetos de serviço (System.ServiceProcess.ServiceController) recuperados pelo cmdlet Get-Service, inclusive os membros intrínsecos, como PSBase e PSObject e os métodos get_ e set_.
O primeiro comando usa o cmdlet Get-Service para obter objetos que representam os serviços no sistema. Ele usa um operador de pipeline (|) para enviar os objetos de serviço para o cmdlet Get-Member.
O comando Get-Member usa o parâmetro Force para adicionar os membros intrínsecos e os membros gerados por compilador dos objetos à exibição. Get-Member obtém esses membros, mas os oculta por padrão.
Você pode usar estas propriedades e métodos da mesma forma que usaria um método adaptado do objeto. O segundo comando mostra como exibir o valor da propriedade PSBase do serviço Schedule.
Exemplo 3
C:\PS>get-service | get-member -view extended
TypeName: System.ServiceProcess.ServiceController
Name MemberType Definition
---- ---------- ----------
Name AliasProperty Name = ServiceName
Descrição
-----------
Este comando obtém as propriedades e os métodos de objetos de serviço que foram estendidos através do arquivo Types.ps1xml ou por meio do cmdlet Add-Member.
O comando Get-Member usa o parâmetro View para obter só os membros estendidos dos objetos de serviço. Neste caso, o membro estendido é a propriedade Name, que é uma propriedade de alias da propriedade ServiceName.
Exemplo 4
C:\PS>get-eventlog -log system | gm -membertype scriptproperty
TypeName: System.Diagnostics.EventLogEntry
Name MemberType Definition
---- ---------- ----------
EventID ScriptProperty System.Object EventID {get=$this.get_EventID() -band 0xFFFF;}
Descrição
-----------
Este comando obtém as propriedades de script de objetos de log de eventos no log de Sistema do Visualizador de Eventos. Nesse caso, a única propriedade de script é EventID.
Exemplo 5
C:\PS>get-eventlog -log system | get-member -membertype scriptproperty
TypeName: System.Diagnostics.EventLogEntry
Name MemberType Definition
---- ---------- ----------
EventID ScriptProperty System.Object EventID {get=$this.get_EventID() -band 0xFFFF;}
Descrição
-----------
Este comando obtém as propriedades de script de objetos de log de eventos no log de Sistema do Visualizador de Eventos.
O comando usa o parâmetro MemberType para obter somente objetos com valor de AliasProperty para sua propriedade MemberType.
O comando retorna a propriedade EventID do objeto EventLog.
Exemplo 6
C:\PS>$a = "get-process", "get-service", "get-culture", "get-psdrive", "get-executionpolicy"
C:\PS> foreach ($cmdlet in $a) {invoke-expression $cmdlet | get-member -name machinename}
TypeName: System.Diagnostics.Process
Name MemberType Definition
---- ---------- ----------
MachineName Property System.String MachineName {get;}
TypeName: System.ServiceProcess.ServiceController
Name MemberType Definition
---- ---------- ----------
MachineName Property System.String MachineName {get;set;}
Descrição
-----------
Este comando obtém objetos que têm uma propriedade MachineName de uma lista de cmdlets.
O primeiro comando armazena os nomes de vários cmdlets na variável $a.
O segundo comando usa uma instrução ForEach para invocar cada comando, envia os resultados para Get-Member e limita os resultados de Get-Member aos membros que têm o nome "MachineName."
Os resultados mostram que somente objetos de processos (System.Diagnostics.Process) e objetos de serviço (System.ServiceProcess.ServiceController) têm uma propriedade MachineName.
Exemplo 7
C:\PS>$a = get-member -inputobject @(1)
C:\PS>$a.count
1
C:\PS> $a = get-member -inputobject 1,2,3
TypeName: System.Object[]
Name MemberType Definition
---- ---------- ----------
Count AliasProperty Count = Length
Address Method System.Object& Address(Int32 )
Clone Method System.Object Clone()
...
C:\PS>$a.count
1
Descrição
-----------
Este exemplo demonstra como localizar as propriedades e métodos de uma matriz de objetos quando você tiver só um objeto do tipo determinado.
Como a meta do comando é localizar as propriedades de uma matriz, o primeiro comando usa o parâmetro InputObject. Ele usa o símbolo "arroba" (@) para indicar uma matriz. Neste caso, a matriz contém só um objeto, o inteiro 1.
O terceiro comando usa o cmdlet Get-Member para obter as propriedades e os métodos de uma matriz de inteiros e o comando os salva na variável $a.
O quarto comando usa a propriedade Count da matriz para localizar o número de objetos na variável $a.