Get-Member
Obtém as propriedades e os métodos dos objetos.
Sintaxe
Get-Member
[[-Name] <String[]>]
[-InputObject <PSObject>]
[-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
PS> Get-Service | Get-Member
TypeName: System.ServiceProcess.ServiceController
Name MemberType Definition
---- ---------- ----------
Name AliasProperty Name = ServiceName
Close Method System.Void Close()
Continue Method System.Void Continue()
CreateObjRef Method System.Runtime.Remoting.ObjRef CreateObjRef(Type requestedType)
Dispose Method System.Void Dispose()
Equals Method System.Boolean Equals(Object obj)
ExecuteCommand Method System.Void ExecuteCommand(Int32 command)
GetHashCode Method System.Int32 GetHashCode()
GetLifetimeService Method System.Object GetLifetimeService()
GetType Method System.Type GetType()
InitializeLifetimeService Method System.Object InitializeLifetimeService()
Pause Method System.Void Pause()
Refresh Method System.Void Refresh()
Start Method System.Void Start(), System.Void Start(String[] args)
Stop Method System.Void Stop()
ToString Method System.String ToString()
WaitForStatus Method System.Void WaitForStatus(ServiceControllerStatus desiredStatus), System.Voi...
CanPauseAndContinue Property System.Boolean CanPauseAndContinue {get;}
CanShutdown Property System.Boolean CanShutdown {get;}
CanStop Property System.Boolean CanStop {get;}
Container Property System.ComponentModel.IContainer Container {get;}
DependentServices Property System.ServiceProcess.ServiceController[] DependentServices {get;}
DisplayName Property System.String DisplayName {get;set;}
MachineName Property System.String MachineName {get;set;}
ServiceHandle Property System.Runtime.InteropServices.SafeHandle ServiceHandle {get;}
ServiceName Property System.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;}
Status Property System.ServiceProcess.ServiceControllerStatus Status {get;}
Esse comando exibe as propriedades e os métodos dos objetos de processo (System.ServiceProcess.ServiceController) gerados pelo cmdlet Get-Service.
O comando usa o operador de pipeline (|) para enviar a saída de um comando Get-Service para get-member.
Como o Get-Member parte do comando não tem parâmetros, ele usa todos os valores padrão. Dessa forma, ele obtém todos os tipos de membro, mas não obtém membros estáticos e não exibe membros intrínsecos.
Exemplo 2: Obter membros de objetos de serviço
PS> Get-Service | Get-Member -Force
PS> (Get-Service Schedule).PSBase
Este exemplo obtém todos os membros (propriedades e métodos) dos objetos de serviço (System.ServiceProcess.ServiceController) recuperados pelo cmdlet Get-Service, incluindo os membros intrínsecos, como PSBase e PSObject, e os métodos get_ e set_.
O primeiro comando usa o cmdlet
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. get-member obtém esses membros, mas os oculta por padrã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
PS> Get-Service| Get-Member -View Extended
TypeName: System.ServiceProcess.ServiceController
Name MemberType Definition
---- ---------- ----------
Name AliasProperty Name = ServiceName
Esse comando obtém os métodos e as propriedades de objetos de serviço que foram estendidos usando o arquivo Types.ps1xml ou o cmdlet Add-Member.
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
PS> Get-EventLog -Log System | Get-Member -MemberType ScriptProperty
TypeName: System.Diagnostics.EventLogEntry
Name MemberType Definition
---- ---------- ----------
EventID ScriptProperty System.Object EventID {get=$this.get_EventID() -band 0xFFFF;}
Esse comando obtém as propriedades de script de objetos de log de eventos no log do sistema no Visualizador de Eventos.
O comando usa o parâmetro MemberType para obter apenas objetos com um valor de ScriptProperty para sua propriedade MemberType.
O comando retorna a propriedade EventID do objeto EventLog
Exemplo 5: Obter objetos com uma propriedade especificada
PS> $A = "Get-Process", "Get-Service", "Get-Culture", "Get-PSDrive", "Get-ExecutionPolicy"
PS> ForEach ($Cmdlet in $A) {Invoke-Command $Cmdlet | Get-Member -Name MachineName}
TypeName: System.Diagnostics.Process
Name MemberType Definition
---- ---------- ----------
MachineName Property System.String MachineName {get;}
TypeName: System.ServiceProcess.ServiceController
Name MemberType Definition
---- ---------- ----------
MachineName Property System.String MachineName {get;set;}
Esse comando obtém objetos que têm uma propriedade MachineName de uma lista de cmdlets.
O primeiro comando armazena os nomes de vários cmdlets na variável $A.
O segundo comando usa uma instrução ForEach para invocar cada comando, enviar os resultados para get-member e limitar os resultados de Get-Member para membros que têm o nome MachineName.
Os resultados mostram que somente objetos de processo (System.Diagnostics.Process) e objetos de serviço (System.ServiceProcess.ServiceController) têm uma propriedade MachineName.
Exemplo 6: Obter membros para uma matriz
PS> $A = @(1)
PS> $A.Count
1
PS> Get-Member -InputObject $A
TypeName: System.Object[]
Name MemberType Definition
---- ---------- ----------
Count AliasProperty Count = Length
Address Method System.Object& Address(Int32 )
Clone Method System.Object Clone()
...
PS> $A = @(1,2,3)
PS> Get-Member -InputObject $A
TypeName: System.Object[]
Name MemberType Definition
---- ---------- ----------
Count AliasProperty Count = Length
Address Method System.Object& Address(Int32 )
Clone Method System.Object Clone()
...
PS> $A.Count
3
Este exemplo demonstra como localizar as propriedades e os métodos de uma matriz de objetos quando você tem apenas um objeto do tipo fornecido.
Como o objetivo do comando é localizar as propriedades de uma matriz, o primeiro comando usa o parâmetro InputObject. Ele usa o símbolo at (@) para indicar uma matriz. Nesse caso, a matriz contém apenas um objeto, o inteiro 1.
O terceiro comando usa o cmdlet Get-Member para obter as propriedades e os métodos de uma matriz de inteiros e o comando os salva na variável $A.
O quarto comando usa a propriedade Count da matriz para localizar o número de objetos na variável $A.
Exemplo 7: Determinar quais propriedades de objeto você pode definir
PS> $File = Get-Item c:\test\textFile.txt
PS> $File.psobject.properties | Where-Object {$_.issettable} | Format-Table -Property name
Name
----
PSPath
PSParentPath
PSChildName
PSDrive
PSProvider
PSIsContainer
IsReadOnly
CreationTime
CreationTimeUtc
LastAccessTime
LastAccessTimeUtc
LastWriteTime
LastWriteTimeUtc
Attributes
PS> [appdomain]::CurrentDomain.GetAssemblies() | ForEach-Object { $_.getexportedtypes() } | ForEach-Object {$_.getproperties() | Where-Object {$_.canwrite }} | Select-Object reflectedtype, name
Este exemplo mostra como determinar quais propriedades de um objeto podem ser alteradas. O exemplo usa um arquivo, mas você pode usar esse formato de comando para encontrar as propriedades alteráveis de qualquer objeto no Windows PowerShell.
O primeiro comando usa o cmdlet Get-Item para obter um arquivo de texto e salva o objeto de arquivo na variável $File.
O segundo comando obtém todas as propriedades alteráveis do objeto de arquivo na variável $File e exibe os nomes das propriedades em uma tabela.
O terceiro comando obtém as propriedades alteráveis de todos os objetos em sua sessão do Windows PowerShell.
Exemplo 8: Obter membros de cada item em uma coleção
PS> $S = Get-Service
PS> $S | 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 System.Void Close()
Continue Method System.Void Continue()
CreateObjRef Method System.Runtime.Remoting.ObjRef CreateObjRef(type requestedTy
Dispose Method System.Void Dispose()
...
PS> Get-Member -InputObject $S
TypeName: System.Object[]
Name MemberType Definition
---- ---------- ----------
Count AliasProperty Count = Length
Address Method System.Object&, mscorlib, Version=2.0.0.0, Cultu
Clone Method System.Object Clone()
CopyTo Method System.Void CopyTo(array array, int index), Syst
Equals Method bool Equals(System.Object obj)
Get Method System.Object Get(int )
GetEnumerator Method System.Collections.IEnumerator GetEnumerator()
GetHashCode Method int GetHashCode()
...
Este exemplo mostra como o parâmetro InputObject
O primeiro comando obtém os serviços no computador local e salva os serviços na variável $S.
O segundo comando redireciona a variável $S para o cmdlet
O terceiro comando usa o parâmetro InputObject de Get-Member para enviar a variável $S.
Parâmetros
-Force
Adiciona os membros intrínsecos (PSBase, PSAdapted, PSObject, PSTypeNames) e os métodos get_ e set_ gerados pelo compilador à exibição. Por padrão, get-member obtém essas propriedades em todos os modos de exibição diferentes de Base e Adaptado, mas não as exibe.
A lista a seguir descreve as propriedades adicionadas ao usar o parâmetro Force:
- PSBase: as propriedades originais do objeto .NET Framework sem extensão ou adaptação. Estas são as propriedades definidas para a classe de objeto e listadas no MSDN.
- PSAdapted. As propriedades e os métodos definidos no sistema de tipos estendidos do Windows 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 Windows PowerShell. - PSTypeNames. Uma lista de tipos de objeto que descrevem o objeto, em ordem de especificidade. Ao formatar o objeto, o Windows PowerShell pesquisa os tipos nos arquivos Format.ps1xml no diretório de instalação do Windows PowerShell ($pshome). Ele usa a definição de formatação para o primeiro tipo encontrado.
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ê 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 é All.
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 de Enumeração PSMemberTypes na biblioteca MSDN.
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 Windows 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
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 é Adapted, Extended.
Os valores válidos são:
- Base. Obtém apenas as propriedades e os métodos originais do objeto .NET Framework (sem extensão ou adaptação).
- Adaptado. Obtém apenas as propriedades e os métodos definidos no sistema de tipos estendidos do Windows PowerShell.
- Prolongado. Obtém apenas as propriedades e métodos que foram adicionados nos arquivos Types.ps1xml 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
Tipo: | PSMemberViewTypes |
Valores aceitos: | Extended, Adapted, Base, All |
Cargo: | Named |
Valor padrão: | None |
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 obtido.
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.