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
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
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
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 cmdletAdd-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
- 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
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
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 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 cmdletAdd-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
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
Você pode redirecionar qualquer objeto para Get-Member
.
Saídas
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
.