Compartilhar via


Get-Member

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

Sintaxe

Get-Member
   [-InputObject <PSObject>]
   [[-Name] <String[]>]
   [-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

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

Como o Get-Member parte do comando não tem parâmetros, ele 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 cmdlet Get-Service, 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 comando Get-Member 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 Schedule.

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 arquivo Types.ps1xml ou o cmdlet Add-Member.

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

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 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 variável $list 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 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 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 localizar os membros de uma matriz de objetos. Quando você canaliza e 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 variável contém um objeto int32 e um objeto de cadeia de caracteres , como visto quando a matriz é canalizada para . Quando é passado usando o parâmetro 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

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 ao usar o parâmetro Force:

  • PSBase: as propriedades originais do objeto .NET sem extensão ou adaptação. Estas são as propriedades definidas para a classe de objeto.
  • PSAdapted . As propriedades e os métodos definidos no sistema de tipo estendido do 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 PSObject do PowerShell.
  • PSTypeNames . Uma lista de tipos de objeto que descrevem o objeto, em ordem de especificidade. Ao formatar o objeto, o PowerShell pesquisa os tipos nos arquivos Format.ps1xml no diretório de instalação do PowerShell ($PSHOME). Ele usa a definição de formatação para o primeiro tipo encontrado.

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.

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 . 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 é Todos os.

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 Enumeração PSMemberTypes.

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 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, 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 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 determinados tipos de propriedades e métodos. Especifique um ou mais dos valores. O padrão é Adaptado, Estendido.

Os valores aceitáveis para este 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 um Types.ps1xml arquivos 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:Adapted, Extended
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 que ele 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 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.

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