Get-Member
Obtém as propriedades e métodos de objetos.
Sintaxe
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 ordenada em ordem alfabética. Os métodos são listados primeiro, seguidos pelas propriedades.
Exemplos
Exemplo 1: Obter os membros de objetos de processo
Este 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, 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) de objetos de serviço recuperados pelo Get-Service
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 Schedule. 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.Service.ServiceController#StartupType
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 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
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.Service.ServiceController#StartupType
Name MemberType Definition
---- ---------- ----------
MachineName Property string MachineName {get;set;}
Os resultados mostram que apenas 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 , 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 criados
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. Estas são as propriedades definidas para a classe de objeto.PSAdapted
: As propriedades e os métodos definidos no sistema de tipos estendidos do PowerShell.PSExtended
: As propriedades e métodos que foram adicionados nosTypes.ps1xml
arquivos ou usando oAdd-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 nosFormat.ps1xml
arquivos 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, obtém essas propriedades em todos os modos de exibição, Get-Member
exceto Base e Adaptado, mas não as exibe.
Tipo: | SwitchParameter |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | 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
o ,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 |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | True |
Aceitar carateres universais: | False |
-MemberType
Especifica o tipo de membro que esse cmdlet obtém. A predefinição é All
.
Os valores aceitáveis para este 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 o preenchimento 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.
Tipo: | PSMemberTypes |
Aliases: | Type |
Valores aceites: | AliasProperty, CodeProperty, Property, NoteProperty, ScriptProperty, Properties, PropertySet, Method, CodeMethod, ScriptMethod, Methods, ParameterizedProperty, MemberSet, Event, Dynamic, All |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | 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 , 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 .
Tipo: | String[] |
Position: | 0 |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | 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 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.
Tipo: | SwitchParameter |
Position: | Named |
Default value: | None |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | 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 aceitáveis para este 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 tipo estendido do PowerShell.
- Prorrogado. Obtém apenas as propriedades e os métodos que foram adicionados em um
Types.ps1xml
arquivo ou usando oAdd-Member
cmdlet. - 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 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.
Tipo: | PSMemberViewTypes |
Valores aceites: | Extended, Adapted, Base, All |
Position: | Named |
Default value: | Adapted, Extended |
Necessário: | False |
Aceitar entrada de pipeline: | False |
Aceitar carateres universais: | False |
Entradas
Você pode canalizar qualquer objeto para este cmdlet.
Saídas
Este cmdlet retorna um MemberDefinition para cada propriedade ou método obtido.
Notas
O PowerShell inclui os seguintes aliases para Get-Member
:
- Todas as plataformas:
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 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 de tipo, como [int]
, Get-Member
retornará informações sobre o [System.RuntimeType]
tipo. No entanto, quando você usa o parâmetro Static , Get-Member
retorna os membros estáticos do tipo específico representado pela System.RuntimeType
instância.