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.ServiceProcess.ServiceController
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()
CreateObjRef Method System.Runtime.Remoting.ObjRef CreateObjRef(type requestedType)
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...
CanPauseAndContinue Property bool CanPauseAndContinue {get;}
CanShutdown Property bool CanShutdown {get;}
CanStop Property bool CanStop {get;}
Container Property System.ComponentModel.IContainer Container {get;}
DependentServices Property System.ServiceProcess.ServiceController[] DependentServices {get;}
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;}
Status Property System.ServiceProcess.ServiceControllerStatus Status {get;}
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 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.ServiceProcess.ServiceController
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.ServiceProcess.ServiceController
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-Membero 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-MemberInputObject, 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
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 nosTypes.ps1xmlarquivos ou usando oAdd-Membercmdlet.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 nosFormat.ps1xmlarquivos 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 |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
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-Memberobté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-Memberobté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 |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
Especifica o tipo de membro que este cmdlet obtém. O padrão é All.
Os valores aceitáveis para esse parâmetro são:
AliasPropertyCodePropertyPropertyNotePropertyScriptPropertyPropertiesPropertySetMethodCodeMethodScriptMethodMethodsParameterizedPropertyMemberSetEventDynamicAll
Esses valores são definidos como uma enumeração baseada em sinalizador. Você pode combinar vários valores 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 binária-OR. Passar valores como uma matriz é a opção mais simples e também permite que você use a conclusão 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 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 |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
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 |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
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 |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
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.
- Prolongado. Obtém apenas as propriedades e os métodos que foram adicionados em um
Types.ps1xmlarquivo ou usando oAdd-Membercmdlet. - 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 Estático e Exibir no mesmo comando, o parâmetro Exibir será ignorado.
| Type: | PSMemberViewTypes |
| Accepted values: | Extended, Adapted, Base, All |
| Position: | Named |
| Default value: | Adapted, Extended |
| 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.
Links Relacionados
Comentários
Enviar e exibir comentários de