Compartilhar via


Get-Member

Obtém as propriedades e os métodos dos objetos.

Sintaxe

Get-Member
   [[-Name] <String[]>]
   [-InputObject <PSObject>]
   [-MemberType <PSMemberTypes>]
   [-View <PSMemberViewTypes>]
   [-Static]
   [-Force]
   [<CommonParameters>]

Description

O cmdlet Get-Member obtém os membros, as propriedades e os métodos dos objetos.

Para especificar o objeto, use o parâmetro InputObject ou pipe de um objeto para Get-Member. Para obter informações sobre membros estáticos, os membros da classe, não da instância, usam o parâmetro estático . Para obter apenas determinados tipos de membros, como NoteProperties, use o parâmetro MemberType.

Exemplos

Exemplo 1: Obter os membros dos objetos de processo

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;}

Esse comando exibe as propriedades e os métodos dos objetos de processo (System.ServiceProcess.ServiceController) 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 o Get-Member parte do comando não tem parâmetros, ele usa todos os valores padrão. Dessa forma, ele obtém todos os tipos de membro, mas não obtém membros estáticos e não exibe membros intrínsecos.

Exemplo 2: Obter membros de objetos de serviço

PS> Get-Service | Get-Member -Force
PS> (Get-Service Schedule).PSBase

Este exemplo obtém todos os membros (propriedades e métodos) dos objetos de serviço (System.ServiceProcess.ServiceController) recuperados pelo cmdlet Get-Service, incluindo 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 passar 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 pelo compilador dos objetos à exibição. get-member obtém esses membros, mas os oculta por padrão.

Você pode usar essas propriedades e métodos da mesma maneira 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: Obter membros estendidos de objetos de serviço

PS> Get-Service| Get-Member -View Extended
TypeName: System.ServiceProcess.ServiceController
Name MemberType    Definition
---- ----------    ----------
Name AliasProperty Name = ServiceName

Esse comando obtém os métodos e as propriedades de objetos de serviço que foram estendidos usando o arquivo Types.ps1xml ou o cmdlet Add-Member.

O comando Get-Member usa o parâmetro View para obter apenas os membros estendidos dos objetos de serviço. Nesse caso, o membro estendido é a propriedade Name, que é uma propriedade de alias da propriedade ServiceName.

Exemplo 4: Obter propriedades de script de objetos de log de eventos

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;}

Esse comando obtém as propriedades de script de objetos de log de eventos no log do sistema no Visualizador de Eventos.

O comando usa o parâmetro MemberType para obter apenas objetos com um valor de ScriptProperty para sua propriedade MemberType.

O comando retorna a propriedade EventID do objeto EventLog .

Exemplo 5: Obter objetos com uma propriedade especificada

PS> $A = "Get-Process", "Get-Service", "Get-Culture", "Get-PSDrive", "Get-ExecutionPolicy"
PS> ForEach ($Cmdlet in $A) {Invoke-Command $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;}

Esse 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, enviar os resultados para get-member e limitar os resultados de Get-Member para membros que têm o nome MachineName.

Os resultados mostram que somente objetos de processo (System.Diagnostics.Process) e objetos de serviço (System.ServiceProcess.ServiceController) têm uma propriedade MachineName.

Exemplo 6: Obter membros para uma matriz

PS> $A = @(1)
PS> $A.Count
1
PS> Get-Member -InputObject $A
TypeName: System.Object[]
Name               MemberType    Definition
----               ----------    ----------
Count              AliasProperty Count = Length
Address            Method        System.Object& Address(Int32 )
Clone              Method        System.Object Clone()
...
PS> $A = @(1,2,3)
PS> Get-Member -InputObject $A
TypeName: System.Object[]
Name               MemberType    Definition
----               ----------    ----------
Count              AliasProperty Count = Length
Address            Method        System.Object& Address(Int32 )
Clone              Method        System.Object Clone()
...
PS> $A.Count
3

Este exemplo demonstra como localizar as propriedades e os métodos de uma matriz de objetos quando você tem apenas um objeto do tipo fornecido.

Como o objetivo do comando é localizar as propriedades de uma matriz, o primeiro comando usa o parâmetro InputObject. Ele usa o símbolo at (@) para indicar uma matriz. Nesse caso, a matriz contém apenas 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.

Exemplo 7: Determinar quais propriedades de objeto você pode definir

PS> $File = Get-Item c:\test\textFile.txt
PS> $File.psobject.properties | Where-Object {$_.issettable} | Format-Table -Property name
Name
----
PSPath
PSParentPath
PSChildName
PSDrive
PSProvider
PSIsContainer
IsReadOnly
CreationTime
CreationTimeUtc
LastAccessTime
LastAccessTimeUtc
LastWriteTime
LastWriteTimeUtc
Attributes
PS> [appdomain]::CurrentDomain.GetAssemblies() | ForEach-Object { $_.getexportedtypes() } | ForEach-Object {$_.getproperties() | Where-Object {$_.canwrite }} | Select-Object reflectedtype, name

Este exemplo mostra como determinar quais propriedades de um objeto podem ser alteradas. O exemplo usa um arquivo, mas você pode usar esse formato de comando para encontrar as propriedades alteráveis de qualquer objeto no Windows PowerShell.

O primeiro comando usa o cmdlet Get-Item para obter um arquivo de texto e salva o objeto de arquivo na variável $File.

O segundo comando obtém todas as propriedades alteráveis do objeto de arquivo na variável $File e exibe os nomes das propriedades em uma tabela.

O terceiro comando obtém as propriedades alteráveis de todos os objetos em sua sessão do Windows PowerShell.

Exemplo 8: Obter membros de cada item em uma coleção

PS> $S = Get-Service
PS> $S | Get-Member
TypeName: System.ServiceProcess.ServiceController
Name                      MemberType    Definition
----                      ----------    ----------
Name                      AliasProperty Name = ServiceName
RequiredServices          AliasProperty RequiredServices = ServicesDependedOn
Disposed                  Event         System.EventHandler Disposed(System.Object, System.EventArgs
Close                     Method        System.Void Close()
Continue                  Method        System.Void Continue()
CreateObjRef              Method        System.Runtime.Remoting.ObjRef CreateObjRef(type requestedTy
Dispose                   Method        System.Void Dispose()
...
PS> Get-Member -InputObject $S
TypeName: System.Object[]
Name           MemberType    Definition
----           ----------    ----------
Count          AliasProperty Count = Length
Address        Method        System.Object&, mscorlib, Version=2.0.0.0, Cultu
Clone          Method        System.Object Clone()
CopyTo         Method        System.Void CopyTo(array array, int index), Syst
Equals         Method        bool Equals(System.Object obj)
Get            Method        System.Object Get(int )
GetEnumerator  Method        System.Collections.IEnumerator GetEnumerator()
GetHashCode    Method        int GetHashCode()
...

Este exemplo mostra como o parâmetro InputObject funciona no cmdlet Get-Member. Quando você usa o parâmetro InputObject para obter os membros de uma coleção, get-member obtém os membros da coleção. Quando você redireciona uma coleção de objetos para Get-Member, Get-Member obtém os membros de cada item da coleção.

O primeiro comando obtém os serviços no computador local e salva os serviços na variável $S.

O segundo comando redireciona a variável $S para o cmdlet Get-Member. get-member obtém os tipos de cada membro de $S e os membros desse tipo. Nesse caso, ele obtém objetos ServiceController e lista os membros, como RequiredServices e Close.

O terceiro comando usa o parâmetro InputObject de Get-Member para enviar a variável $S. get-member obtém o tipo (System.Object[]) e os membros da coleção (ou matriz) de objetos ServiceController , como Count e Clone.

Parâmetros

-Force

Adiciona os membros intrínsecos (PSBase, PSAdapted, PSObject, PSTypeNames) e os métodos get_ e set_ gerados pelo compilador à exibição. Por padrão, get-member obtém essas propriedades em todos os modos de exibição diferentes de Base e Adaptado, mas não as exibe.

A lista a seguir descreve as propriedades adicionadas ao usar o parâmetro Force:

  • PSBase: as propriedades originais do objeto .NET Framework sem extensão ou adaptação. Estas 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 tipos estendidos do Windows PowerShell.
  • PSExtended. As propriedades e os métodos que foram adicionados nos arquivos Types.ps1xml ou usando o cmdlet Add-Member.
  • PSObject. O adaptador que converte o objeto base em um objeto PSObjectdo Windows PowerShell.
  • PSTypeNames. Uma lista de tipos de objeto que descrevem o objeto, em ordem de especificidade. Ao formatar o objeto, o Windows PowerShell pesquisa os tipos nos arquivos Format.ps1xml no diretório de instalação do Windows PowerShell ($pshome). Ele usa a definição de formatação para o primeiro tipo encontrado.
Tipo:SwitchParameter
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-InputObject

Especifica o objeto cujos membros são recuperados.

Usar o parâmetro InputObject não é o mesmo que canalizar um objeto para Get-Member. As diferenças são as seguintes:

  • Quando você redireciona uma coleção de objetos para Get-Member, Get-Member obtém os membros dos objetos individuais na coleção, como as propriedades de cada cadeia de caracteres em uma matriz de cadeias de caracteres.
  • 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 em uma matriz de cadeias de caracteres.
Tipo:PSObject
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:True
Aceitar caracteres curinga:False

-MemberType

Especifica o tipo de membro que este cmdlet obtém. O padrão é All.

Os valores aceitáveis para este parâmetro são:

  • AliasProperty
  • CodeProperty
  • Propriedade
  • NoteProperty
  • ScriptProperty
  • Propriedades
  • PropertySet
  • Método
  • CodeMethod
  • ScriptMethod
  • Métodos
  • ParameterizedProperty
  • MemberSet
  • Acontecimento
  • Dinâmico
  • Todo

Para obter informações sobre esses valores, consulte de Enumeração PSMemberTypes na biblioteca MSDN.

Nem todos os objetos têm todos os tipos de membro. Se você especificar um tipo de membro que o objeto não tem, o Windows PowerShell retornará um valor nulo.

Para obter tipos relacionados de membros, como todos os membros estendidos, use o parâmetro Exibir. Se você usar o parâmetro MemberType com os parâmetros estáticos ou View, get-member obterá os membros que pertencem a ambos os conjuntos.

Tipo:PSMemberTypes
Aliases:Type
Valores aceitos:AliasProperty, CodeProperty, Property, NoteProperty, ScriptProperty, Properties, PropertySet, Method, CodeMethod, ScriptMethod, Methods, ParameterizedProperty, MemberSet, Event, Dynamic, All
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Name

Especifica os nomes de uma ou mais propriedades ou métodos do objeto. get-member obtém apenas as propriedades e os métodos especificados.

Se você usar o parâmetro Name com o parâmetro MemberType, Viewou parâmetro Estático, Get-Member obtém apenas os membros que atendem aos critérios de todos os parâmetros.

Para obter um membro estático por nome, use o parâmetro static com o parâmetro name .

Tipo:String[]
Cargo:0
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Static

Indica que esse cmdlet obtém apenas as propriedades estáticas e os métodos do objeto.

Propriedades e métodos estáticos são definidos na classe de objetos, não em nenhuma instância específica da classe.

Se você usar o parâmetro Estático com o parâmetro View, o parâmetro View será ignorado. Se você usar o parâmetro Estático com o parâmetro MemberType, Get-Member obterá apenas os membros que pertencem a ambos os conjuntos.

Tipo:SwitchParameter
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-View

Especifica que esse cmdlet obtém apenas determinados tipos de propriedades e métodos. Especifique um ou mais dos valores. O padrão é Adapted, Extended.

Os valores válidos são:

  • Base. Obtém apenas as propriedades e os métodos originais do objeto .NET Framework (sem extensão ou adaptação).
  • Adaptado. Obtém apenas as propriedades e os métodos definidos no sistema de tipos estendidos do Windows PowerShell.
  • Prolongado. Obtém apenas as propriedades e métodos que foram adicionados nos arquivos Types.ps1xml ou usando o cmdlet Add-Member.
  • Todo. Obtém os membros nos modos de exibição Base, Adaptado e Estendido.

O parâmetro View determina os membros recuperados, não apenas a exibição desses membros.

Para obter tipos de membro específicos, 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 Estático e Exibir no mesmo comando, o parâmetro View será ignorado.

Tipo:PSMemberViewTypes
Valores aceitos:Extended, Adapted, Base, All
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

Entradas

PSObject

Você pode redirecionar qualquer objeto para get-member.

Saídas

MemberDefinition

get-member retorna um objeto para cada propriedade ou método obtido.

Observações

  • Você pode obter informações sobre um objeto de coleção usando o parâmetro InputObject ou canalizando o objeto, precedido por uma vírgula, para Get-Member.

    Você pode usar a variável $This automática em blocos de script que definem os valores de novas propriedades e métodos. A variável $This refere-se à instância do objeto à qual as propriedades e os métodos estão sendo adicionados. Para obter mais informações sobre a variável $This, consulte about_Automatic_Variables.