Get-Member

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

Syntax

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 direcione 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

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) dos 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 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 de agendamento.

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 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 para NoteProperty 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 instrução foreach invoca cada comando e envia os resultados para Get-Member. O parâmetro Name limita os resultados de Get-Member 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 somente objetos de processo e objetos de serviço têm uma propriedade MachineName .

Exemplo 6: Obter membros para uma matriz

Este exemplo demonstra como encontrar os membros de uma matriz de objetos. Quando você faz pipe e matriz de objetos, Get-Membero 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-MemberInputObject, 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

Parâmetros

-Force

Adiciona os membros intrínsecos e os métodos get_ e set_ gerados pelo compilador à exibição. A lista a seguir descreve as propriedades 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 os 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, na 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, Get-Member obtém essas propriedades em todos os modos de exibição, exceto Base e Adaptado, mas não as exibe.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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:

  • Quando você canaliza 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.
Type:PSObject
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-MemberType

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

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

  • Aliasproperty
  • Codeproperty
  • Propriedade
  • Noteproperty
  • ScriptProperty
  • Propriedades
  • PropertySet
  • Método
  • CodeMethod
  • Scriptmethod
  • Métodos
  • ParameterizedProperty
  • Memberset
  • Evento
  • Dinâmico
  • Tudo

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 Estático ou View , Get-Member obtém os membros que pertencem a ambos os conjuntos.

Type:PSMemberTypes
Aliases:Type
Accepted values:AliasProperty, CodeProperty, Property, NoteProperty, ScriptProperty, Properties, PropertySet, Method, CodeMethod, ScriptMethod, Methods, ParameterizedProperty, MemberSet, Event, Dynamic, All
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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, View ou Static , 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 Estático com o parâmetro Name .

Type:String[]
Position:0
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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 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.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-View

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

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.
  • Estendido. Obtém apenas as propriedades e os métodos que foram adicionados em um Types.ps1xml arquivo ou usando o Add-Member cmdlet.
  • Todos. 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 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 obtém os membros que pertencem a ambos os conjuntos. Se você usar os parâmetros Static e View no mesmo comando, o parâmetro Exibir será ignorado.

Type:PSMemberViewTypes
Accepted values:Extended, Adapted, Base, All
Position:Named
Default value:Adapted, Extended
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Entradas

PSObject

Você pode canalizar qualquer objeto para Get-Member.

Saídas

MemberDefinition

Get-Member retorna um objeto para cada propriedade ou método que obtém.

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 $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 $This variável, consulte about_Automatic_Variables.

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