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.






See Also




Sumário