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 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.ServiceProcess.ServiceController

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()
CreateObjRef              Method        System.Runtime.Remoting.ObjRef CreateObjRef(type requestedType)
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...
CanPauseAndContinue       Property      bool CanPauseAndContinue {get;}
CanShutdown               Property      bool CanShutdown {get;}
CanStop                   Property      bool CanStop {get;}
Container                 Property      System.ComponentModel.IContainer Container {get;}
DependentServices         Property      System.ServiceProcess.ServiceController[] DependentServices {get;}
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;}
Status                    Property      System.ServiceProcess.ServiceControllerStatus Status {get;}
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 Get-Service pelo 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.ServiceProcess.ServiceController

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 somente os membros estendidos dos objetos de serviço. Nesse caso, o membro estendido é a propriedade Name , que é uma propriedade 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 em Visualizar 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 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.ServiceProcess.ServiceController

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 $array variável contém um objeto Int32 e um objeto string , 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 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 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 objeto que descrevem o objeto, em ordem de especificidade. Ao formatar o objeto, o PowerShell procura 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.

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-Membero . As diferenças são as seguintes:

  • 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 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 juntos 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 binary-OR. Passar valores como uma matriz é a opção mais simples e também permite que você use a conclusão 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.

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 métodos especificados.

Se você usar o parâmetro Name com o parâmetro MemberType, View ou Static obterá Get-Member somente 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 .

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

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 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 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 arquivo 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 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 Static e View no mesmo comando, o parâmetro View 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 esse cmdlet.

Saídas

MemberDefinition

Esse cmdlet retorna um MemberDefinition para cada propriedade ou método que ele obtém.

Observações

O Windows PowerShell inclui os seguintes aliases para Get-Member:

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

Se você passar um objeto que representa um tipo, como um literal [int]de tipo, como , Get-Member retornará 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.