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 direcione 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 . Para obter apenas determinados tipos de membros, como NoteProperties, use o parâmetro MemberType .
Exemplos
Exemplo 1: Obter os membros dos 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.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 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 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 de agendamento.
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 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 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 MemberType obtém apenas objetos com um valor para NoteProperty
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 instrução foreach 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 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 encontrar os membros de uma matriz de objetos. Quando você faz pipe e matriz de objetos, 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 de cadeia de caracteres, 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
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 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 os métodos definidos no sistema de tipos estendidos do PowerShell.
- PSExtended. As propriedades e os métodos que foram adicionados nos
Types.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 objetos que descrevem o objeto, na ordem de especificidade. Ao formatar o objeto, o PowerShell pesquisa 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, Get-Member
obtém essas propriedades em todos os modos de exibição, 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-Member
. As diferenças são:
- 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 este cmdlet obtém. O padrão é All.
Os valores aceitáveis para esse parâmetro são:
- Aliasproperty
- Codeproperty
- Propriedade
- Noteproperty
- ScriptProperty
- Propriedades
- PropertySet
- Método
- CodeMethod
- Scriptmethod
- Métodos
- ParameterizedProperty
- Memberset
- Evento
- Dinâmico
- Tudo
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 Estático ou View , Get-Member
obtém 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 os métodos especificados.
Se você usar o parâmetro Name com o parâmetro MemberType, View ou Static , 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 Estático 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 Estático com o parâmetro View , o parâmetro View será ignorado.
Se você usar o parâmetro Estático 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 propriedades e métodos de tipos específicos. Especifique um ou mais valores. O padrão é Adapted, Extended.
Os valores aceitáveis para esse 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.
- Estendido. 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 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
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 Exibir 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
Você pode canalizar qualquer objeto para Get-Member
.
Saídas
Get-Member
retorna um objeto para cada propriedade ou método que 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 $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 tipo literal, como [int]
, Get-Member
retorne 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.