Get-Member

Obtém as propriedades e métodos de objetos.

Sintaxe

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

Description

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

Para especificar o objeto, use o parâmetro InputObject ou canalize 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 Static . Para obter apenas determinados tipos de membros, como NoteProperties, use o parâmetro MemberType .

Get-Member Retorna uma lista de membros classificada em ordem alfabética. Os métodos são listados primeiro, seguidos pelas propriedades.

Exemplos

Exemplo 1: Obter os membros de objetos de processo

Esse comando exibe as propriedades e os métodos dos objetos de serviço gerados pelo Get-Service cmdlet.

Como a Get-Member parte do comando não tem parâmetros, ela usa valores padrão para os parâmetros. Por padrão, Get-Member não obtém membros estáticos ou intrínsecos.

Get-Service | Get-Member

TypeName: System.Service.ServiceController#StartupType

Name                      MemberType    Definition
----                      ----------    ----------
Name                      AliasProperty Name = ServiceName
RequiredServices          AliasProperty RequiredServices = ServicesDependedOn
Disposed                  Event         System.EventHandler Disposed(System.Object, System.EventArgs)
Close                     Method        void Close()
Continue                  Method        void Continue()
Dispose                   Method        void Dispose(), void IDisposable.Dispose()
Equals                    Method        bool Equals(System.Object obj)
ExecuteCommand            Method        void ExecuteCommand(int command)
GetHashCode               Method        int GetHashCode()
GetLifetimeService        Method        System.Object GetLifetimeService()
GetType                   Method        type GetType()
InitializeLifetimeService Method        System.Object InitializeLifetimeService()
Pause                     Method        void Pause()
Refresh                   Method        void Refresh()
Start                     Method        void Start(), void Start(string[] args)
Stop                      Method        void Stop()
WaitForStatus             Method        void WaitForStatus(System.ServiceProcess.ServiceControllerSt...
BinaryPathName            Property      System.String {get;set;}
CanPauseAndContinue       Property      bool CanPauseAndContinue {get;}
CanShutdown               Property      bool CanShutdown {get;}
CanStop                   Property      bool CanStop {get;}
Container                 Property      System.ComponentModel.IContainer Container {get;}
DelayedAutoStart          Property      System.Boolean {get;set;}
DependentServices         Property      System.ServiceProcess.ServiceController[] DependentServices {get;}
Description               Property      System.String {get;set;}
DisplayName               Property      string DisplayName {get;set;}
MachineName               Property      string MachineName {get;set;}
ServiceHandle             Property      System.Runtime.InteropServices.SafeHandle ServiceHandle {get;}
ServiceName               Property      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;}
StartType                 Property      System.ServiceProcess.ServiceStartMode StartType {get;}
StartupType               Property      Microsoft.PowerShell.Commands.ServiceStartupType {get;set;}
Status                    Property      System.ServiceProcess.ServiceControllerStatus Status {get;}
UserName                  Property      System.String {get;set;}
ToString                  ScriptMethod  System.Object ToString();

Exemplo 2: Obter membros de objetos de serviço

Este exemplo obtém todos os membros (propriedades e métodos) de objetos de serviço recuperados pelo Get-Service cmdlet, incluindo os membros intrínsecos, como PSBase, PSObject e os métodos get_ e set_ .

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

O Get-Member comando usa o parâmetro Force para adicionar os membros intrínsecos e os membros gerados pelo compilador dos objetos à exibiçã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 Agendar. Para obter mais informações sobre membros intrínsecos, consulte about_Intrinsic_Members

Exemplo 3: Obter membros estendidos de objetos de serviço

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

Get-Service | Get-Member -View Extended

TypeName: System.Service.ServiceController#StartupType

Name             MemberType    Definition
----             ----------    ----------
Name             AliasProperty Name = ServiceName
RequiredServices AliasProperty RequiredServices = ServicesDependedOn
ToString         ScriptMethod  System.Object ToString();

O Get-Member comando 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

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

Get-WinEvent -LogName System -MaxEvents 1 | Get-Member -MemberType NoteProperty

TypeName: System.Diagnostics.Eventing.Reader.EventLogRecord

Name    MemberType   Definition
----    ----------   ----------
Message NoteProperty string Message=The machine-default permission settings do not grant Local ...

O parâmetro MemberType obtém apenas objetos com um valor de NoteProperty para sua propriedade MemberType .

O comando retorna a propriedade Message do objeto EventLogRecord .

Exemplo 5: Obter objetos com uma propriedade especificada

Este exemplo obtém objetos que têm uma propriedade MachineName na saída de uma lista de cmdlets.

A $list variável contém uma lista de cmdlets a serem avaliados. A foreach instrução invoca cada comando e envia os resultados para Get-Member. O parâmetro Name limita os resultados de Get-Member para membros que têm o nome MachineName.

$list = "Get-Process", "Get-Service", "Get-Culture", "Get-PSDrive", "Get-ExecutionPolicy"
foreach ($cmdlet in $list) {& $cmdlet | Get-Member -Name MachineName}

TypeName: System.Diagnostics.Process

Name        MemberType Definition
----        ---------- ----------
MachineName Property   string MachineName {get;}

   TypeName: System.Service.ServiceController#StartupType

Name        MemberType Definition
----        ---------- ----------
MachineName Property   string MachineName {get;set;}

Os resultados mostram que apenas objetos de processo e objetos de serviço têm uma propriedade MachineName .

Exemplo 6: Obter membros para uma matriz

Este exemplo demonstra como localizar os membros de uma matriz de objetos. Quando você canaliza uma matriz de objetos para Get-Member, o cmdlet retorna uma lista de membros para cada tipo de objeto exclusivo na matriz. Se você passar a matriz usando o parâmetro InputObject , a matriz será tratada como um único objeto.

$array = @(1,'hello')
$array | Get-Member

TypeName: System.Int32

Name        MemberType Definition
----        ---------- ----------
CompareTo   Method     int CompareTo(System.Object value), int CompareTo(int value), int ICompar...
Equals      Method     bool Equals(System.Object obj), bool Equals(int obj), bool IEquatable[int...
GetHashCode Method     int GetHashCode()
GetType     Method     type GetType()
GetTypeCode Method     System.TypeCode GetTypeCode(), System.TypeCode IConvertible.GetTypeCode()
ToBoolean   Method     bool IConvertible.ToBoolean(System.IFormatProvider provider)
ToByte      Method     byte IConvertible.ToByte(System.IFormatProvider provider)
...

   TypeName: System.String

Name                 MemberType            Definition
----                 ----------            ----------
Clone                Method                System.Object Clone(), System.Object ICloneable.Clone()
CompareTo            Method                int CompareTo(System.Object value), int CompareTo(str...
Contains             Method                bool Contains(string value), bool Contains(string val...
CopyTo               Method                void CopyTo(int sourceIndex, char[] destination, int ...
EndsWith             Method                bool EndsWith(string value), bool EndsWith(string val...
EnumerateRunes       Method                System.Text.StringRuneEnumerator EnumerateRunes()
Equals               Method                bool Equals(System.Object obj), bool Equals(string va...
GetEnumerator        Method                System.CharEnumerator GetEnumerator(), System.Collect...
GetHashCode          Method                int GetHashCode(), int GetHashCode(System.StringCompa...
...

Get-Member -InputObject $array

TypeName: System.Object[]

Name           MemberType            Definition
----           ----------            ----------
Add            Method                int IList.Add(System.Object value)
Address        Method                System.Object&, System.Private.CoreLib, Version=4.0.0.0, Cu...
Clear          Method                void IList.Clear()
Clone          Method                System.Object Clone(), System.Object ICloneable.Clone()
CompareTo      Method                int IStructuralComparable.CompareTo(System.Object other, Sy...
...

A $array variável contém um objeto Int32 e um objeto de cadeia de caracteres , como visto quando a matriz é canalizada para Get-Member. Quando $array é passado usando o parâmetro Get-Member InputObject retorna os membros do tipo Object[].

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

Este exemplo mostra como determinar quais propriedades de um objeto podem ser alteradas.

$File = Get-Item c:\test\textFile.txt
$File.PSObject.Properties | Where-Object isSettable | Select-Object -Property Name

Name
----
PSPath
PSParentPath
PSChildName
PSDrive
PSProvider
PSIsContainer
IsReadOnly
CreationTime
CreationTimeUtc
LastAccessTime
LastAccessTimeUtc
LastWriteTime
LastWriteTimeUtc
Attributes

Exemplo 8: Listar as propriedades de um objeto na ordem em que foram criadas

Este exemplo cria um novo PSObject e adiciona propriedades a ele. Get-Member lista as propriedades em ordem alfabética. Para ver as propriedades na ordem em que foram adicionadas ao objeto, você deve usar o membro intrínseco PSObject .

$Asset = New-Object -TypeName PSObject
$d = [ordered]@{Name="Server30";System="Server Core";PSVersion="4.0"}
$Asset | Add-Member -NotePropertyMembers $d -TypeName Asset
$Asset.PSObject.Properties | Select-Object Name, Value

Name      Value
----      -----
Name      Server30
System    Server Core
PSVersion 4.0

Parâmetros

-Force

Adiciona os membros intrínsecos e os métodos de get_ e set_ gerados pelo compilador à exibição. A lista a seguir descreve as propriedades que são adicionadas quando você usa o parâmetro Force :

  • PSBase: As propriedades originais do objeto .NET sem extensão ou adaptação. Essas são as propriedades definidas para a classe de objeto.
  • PSAdapted: as propriedades e os métodos definidos no sistema de tipos estendidos do PowerShell.
  • PSExtended: as propriedades e métodos que foram adicionados nos Types.ps1xml arquivos ou usando o Add-Member cmdlet.
  • PSObject: o adaptador que converte o objeto base em um objeto PSObject do PowerShell.
  • PSTypeNames: Uma lista de tipos de objetos que descrevem o objeto, em ordem de especificidade. Ao formatar o objeto, o PowerShell pesquisa os tipos nos Format.ps1xml arquivos no diretório de instalação do PowerShell ($PSHOME). Ele usa a definição de formatação para o primeiro tipo que encontrar.

Por padrão, obtém essas propriedades em todos os modos de exibição, Get-Member exceto Base e Adaptado, mas não as exibe.

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ê canaliza uma coleção de objetos para , Get-MemberGet-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 esse cmdlet obtém. O padrão é All.

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

  • AliasProperty
  • CodeProperty
  • Property
  • NoteProperty
  • ScriptProperty
  • Properties
  • PropertySet
  • Method
  • CodeMethod
  • ScriptMethod
  • Methods
  • ParameterizedProperty
  • MemberSet
  • Event
  • Dynamic
  • All

Esses valores são definidos como uma enumeração baseada em sinalizador. Você pode combinar vários valores para definir vários sinalizadores usando esse parâmetro. Os valores podem ser passados para o parâmetro MemberType como uma matriz de valores ou como uma cadeia de caracteres separada por vírgulas desses valores. O cmdlet combinará os valores usando uma operação OR binária. Passar valores como uma matriz é a opção mais simples e também permite que você use o preenchimento de tabulação nos valores.

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

Nem todos os objetos têm todos os tipos de membros. Se você especificar um tipo de membro que o objeto não tem, o PowerShell retornará um valor nulo. Para obter tipos relacionados 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.

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 Get-Member MemberType, View ou Static, obterá apenas os membros que satisfazem os 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 qualquer instância específica da classe.

Se você usar o parâmetro Static com os parâmetros View ou Force , o cmdlet ignorará esses parâmetros. Se você usar o parâmetro Static 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 tipos, propriedades e métodos específicos. Especifique um ou mais valores. O padrão é Adaptado, Estendido.

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

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

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

Para obter tipos de membros 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 Static e View no mesmo comando, o parâmetro View será ignorado.

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

Entradas

PSObject

Você pode canalizar qualquer objeto para esse cmdlet.

Saídas

MemberDefinition

Esse cmdlet retorna um MemberDefinition para cada propriedade ou método obtido.

Observações

O PowerShell inclui os seguintes aliases para Get-Member:

  • Todas as plataformas:
    • gm

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

Se você passar um objeto que representa um tipo, como um literal de tipo, como [int], Get-Member retorne informações sobre o [System.RuntimeType] tipo. No entanto, quando você usa o parâmetro Static , Get-Member retorna os membros estáticos do tipo específico representado pela System.RuntimeType instância.