Get-Member
Obtém as propriedades e métodos de objetos.
Sintaxe
Default (Predefinição)
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 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.
Exemplos
Exemplo 1: Obter os membros de 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;}
Este 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 a parte Get-Member do comando não tem parâmetros, ela usa todos os valores padrão. Como tal, ele obtém todos os tipos de membros, 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 Get-Service para obter objetos que representam os serviços no sistema.
Ele usa um operador de pipeline (|) para passar os objetos de serviço para o cmdlet Get-Member
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
Este 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 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;}
Este 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 somente objetos com um valor de ScriptProperty para sua propriedade MemberType.
O comando retorna a propriedade EventID do objeto
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;}
Este 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-Membere limitar os resultados de Get-Member para membros que têm o nome MachineName.
Os resultados mostram que apenas 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 métodos de uma matriz de objetos quando você tem apenas um objeto do tipo determinado.
Como o objetivo do comando é localizar as propriedades de uma matriz, o primeiro comando usa o parâmetro
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 localizar 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, em seguida, salva o objeto de arquivo na variável $File.
O segundo comando obtém todas as propriedades mutá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 mutáveis de todos os objetos em sua sessão do Windows PowerShell.
Exemplo 8: Obter membros de cada item de 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 funciona no cmdlet Get-Member. Quando você usa o parâmetro InputObject para obter os membros de uma coleção, Get-Member obtém os membros da coleção. Quando você canaliza uma coleção de objetos para Get-Member, Get-Member obtém os membros de cada item da coleção.
O primeiro comando obtém os serviços no computador local e salva os serviços na variável $S.
O segundo comando canaliza a variável $S para o cmdlet Get-Member. Get-Member obtém os tipos de cada membro de $S e os membros desse tipo. Nesse caso, ele obtém objetos ServiceController e lista os membros, como RequiredServices e Close.
O terceiro comando usa o parâmetro InputObject de Get-Member para enviar a variável $S. Get-Member obtém o tipo (System.Object[]) e os membros da coleção (ou matriz) de ServiceController objetos, como Count e Clone.
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 que são adicionadas quando você usa 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 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 procura 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.
Propriedades dos parâmetros
| Tipo: | SwitchParameter |
| Default value: | None |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
Conjuntos de parâmetros
(All)
| Position: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | 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ê 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.
Propriedades dos parâmetros
| Tipo: | PSObject |
| Default value: | None |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
Conjuntos de parâmetros
(All)
| Position: | Named |
| Obrigatório: | False |
| Valor do pipeline: | True |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | False |
-MemberType
Especifica o tipo de membro que esse cmdlet obtém. O padrão é Todos.
Os valores aceitáveis para este parâmetro são:
- AliasProperty
- CodeProperty
- Propriedade
- ObservaçãoPropriedade
- ScriptProperty
- Propriedades
- Conjunto de propriedades
- Método
- CodeMethod
- ScriptMethod
- Metodologia
- Propriedade parametrizada
- Conjunto de Membros
- Evento
- Dinâmica
- Todos
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 membros. 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 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.
Propriedades dos parâmetros
| Tipo: | PSMemberTypes |
| Default value: | None |
| Valores aceites: | AliasProperty, CodeProperty, Property, NoteProperty, ScriptProperty, Properties, PropertySet, Method, CodeMethod, ScriptMethod, Methods, ParameterizedProperty, MemberSet, Event, Dynamic, All |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
| Aliases: | Tipo |
Conjuntos de parâmetros
(All)
| Position: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | 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 MemberType, Viewou parâmetro Static, Get-Member obterá apenas os membros que satisfazem os critérios de todos os parâmetros.
Para obter um membro estático pelo nome, use o parâmetro Static com o parâmetro Name.
Propriedades dos parâmetros
| Tipo: | String[] |
| Default value: | None |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
Conjuntos de parâmetros
(All)
| Position: | 0 |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | False |
-Static
Indica que esse cmdlet obtém apenas as propriedades estáticas e os métodos do objeto.
Propriedades estáticas e métodos 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 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.
Propriedades dos parâmetros
| Tipo: | SwitchParameter |
| Default value: | None |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
Conjuntos de parâmetros
(All)
| Position: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | False |
-View
Especifica que esse cmdlet obtém apenas tipos, propriedades e métodos específicos. Especifique um ou mais dos valores. O padrão é Adaptado, Estendido.
Os valores válidos são:
- Base. Obtém apenas as propriedades e 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 tipo estendido do Windows PowerShell.
- Prorrogado. Obtém apenas as propriedades e os métodos que foram adicionados nos arquivos Types.ps1xml ou usando o cmdlet Add-Member.
- Todos. 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 membros específicos, como propriedades de script, use o parâmetro MemberType. Se você usar o MemberType e parâmetros 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 View será ignorado.
Propriedades dos parâmetros
| Tipo: | PSMemberViewTypes |
| Default value: | None |
| Valores aceites: | Extended, Adapted, Base, All |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
Conjuntos de parâmetros
(All)
| Position: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | False |
CommonParameters
Este cmdlet suporta os parâmetros comuns: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Para obter mais informações, consulte about_CommonParameters.
Entradas
PSObject
Você pode canalizar qualquer objeto para Get-Member.
Saídas
MemberDefinition
Get-Member retorna um objeto para cada propriedade ou método obtido.
Notas
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 automática $This em blocos de script que definem os valores de novas propriedades e métodos. A variável $This refere-se à instância do objeto ao qual as propriedades e métodos estão sendo adicionados. Para obter mais informações sobre a variável $This, consulte about_Automatic_Variables.