Get-Member
Obtém as propriedades e métodos dos 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, utilize o parâmetro InputObject ou encaminhe um objeto para Get-Member
. Para obter informações sobre membros estáticos, os membros da classe, não da instância, utilizam o parâmetro Estático . Para obter apenas determinados tipos de membros, como NoteProperties, utilize o parâmetro MemberType .
Get-Member
devolve uma lista de membros ordenados alfabeticamente. Os métodos são listados primeiro, seguidos das propriedades.
Exemplos
Exemplo 1: Obter os membros dos objetos de processo
Este comando apresenta as propriedades e métodos dos objetos de serviço gerados pelo Get-Service
cmdlet.
Uma vez que a Get-Member
parte do comando não tem parâmetros, utiliza valores predefinidos para os parâmetros. Por predefiniçã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 obtidos pelo Get-Service
cmdlet, incluindo os membros intrínsecos, tais como PSBase, PSObject e os métodos get_ e set_ .
Get-Service | Get-Member -Force
(Get-Service Schedule).PSBase
O Get-Member
comando utiliza o parâmetro Forçar para adicionar os membros intrínsecos e os membros gerados pelo compilador dos objetos ao ecrã. Pode utilizar estas propriedades e métodos da mesma forma que utilizaria um método adaptado do objeto. O segundo comando mostra como apresentar o valor da propriedade PSBase do serviço Agendar. Para obter mais informações sobre membros intrínsecos, consulte about_Intrinsic_Members
Exemplo 3: Obter membros alargados de objetos de serviço
Este exemplo obtém os métodos e propriedades dos objetos de serviço que foram expandidos através de um Types.ps1xml
ficheiro ou do 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 utiliza o parâmetro Ver para obter apenas os membros expandidos dos objetos de serviço. Neste caso, o membro expandido é a propriedade Nome , que é uma propriedade de alias da propriedade ServiceName .
Exemplo 4: Obter propriedades de script de objetos de registo de eventos
Este exemplo obtém as propriedades do script de objetos de registo de eventos no Visualizador de Eventos de início de sessão do sistema.
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 a respetiva propriedade MemberType .
O comando devolve a propriedade Mensagem 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 avaliar. A foreach
instrução invoca cada comando e envia os resultados para Get-Member
. O parâmetro Nome limita os resultados de Get-Member
para os 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 encaminha e matriz de objetos para Get-Member
, o cmdlet devolve uma lista de membros para cada tipo de objeto exclusivo na matriz.
Se passar a matriz com o parâmetro InputObject , a matriz é 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 , conforme visto quando a matriz é encaminhada para Get-Member
. Quando $array
é transmitido com o parâmetro Get-Member
InputObject devolve os membros do tipo Objeto[].
Exemplo 7: determinar as propriedades do objeto que pode definir
Este exemplo mostra como determinar que 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 pela ordem em que foram criados
Este exemplo cria um novo PSObject e adiciona propriedades ao mesmo. Get-Member
lista as propriedades por ordem alfabética. Para ver as propriedades pela ordem em que foram adicionadas ao objeto, tem de utilizar 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 de get_ e set_ gerados pelo compilador ao ecrã. A lista seguinte descreve as propriedades que são adicionadas quando utiliza o parâmetro Forçar :
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 métodos definidos no sistema de tipos expandidos do PowerShell.PSExtended
: as propriedades e métodos que foram adicionados aosTypes.ps1xml
ficheiros ou com oAdd-Member
cmdlet.PSObject
: o adaptador que converte o objeto base num objeto PSObject do PowerShell.PSTypeNames
: uma lista de tipos de objeto que descrevem o objeto por ordem de especificidade. Ao formatar o objeto, o PowerShell procura os tipos nosFormat.ps1xml
ficheiros no diretório de instalação do PowerShell ($PSHOME
). Utiliza a definição de formatação para o primeiro tipo que encontrar.
Por predefinição, Get-Member
obtém estas propriedades em todas as vistas, exceto Base e Adapted, mas não as apresenta.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
Especifica o objeto cujos membros são obtidos.
Utilizar o parâmetro InputObject não é o mesmo que encaminhar um objeto para Get-Member
. As diferenças são as seguintes:
- Quando encaminha 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 numa matriz de cadeias. - Quando utiliza InputObject para submeter uma coleção de objetos,
Get-Member
obtém os membros da coleção, como as propriedades da matriz numa matriz de cadeias.
Type: | PSObject |
Position: | Named |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-MemberType
Especifica o tipo de membro que este 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
Estes valores são definidos como uma enumeração baseada em sinalizador. Pode combinar múltiplos valores para definir vários sinalizadores com este parâmetro. Os valores podem ser transmitidos para o parâmetro MemberType como uma matriz de valores ou como uma cadeia separada por vírgulas desses valores. O cmdlet combinará os valores com uma operação binary-OR. Transmitir valores como uma matriz é a opção mais simples e também lhe permite utilizar a conclusão do separador nos valores.
Para obter informações sobre estes valores, veja Enumeração PSMemberTypes.
Nem todos os objetos têm todos os tipos de membro. Se especificar um tipo de membro que o objeto não tem, o PowerShell devolve um valor nulo. Para obter tipos de membros relacionados, como todos os membros expandidos, utilize o parâmetro Ver . Se utilizar o parâmetro MemberType com os parâmetros Estático ou Ver , 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 |
-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 utilizar o parâmetro Nome com o parâmetro MemberType, View ou Static , Get-Member
obtém apenas os membros que satisfazem os critérios de todos os parâmetros.
Para obter um membro estático por nome, utilize o parâmetro Estático com o parâmetro Nome .
Type: | String[] |
Position: | 0 |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Static
Indica que este cmdlet obtém apenas as propriedades estáticas e os métodos do objeto. As propriedades e métodos estáticos são definidos na classe de objetos e não em nenhuma instância específica da classe.
Se utilizar o parâmetro Estático com o parâmetro Ver , o parâmetro Ver é ignorado.
Se utilizar o parâmetro Estático com o parâmetro MemberType , Get-Member
obtém apenas os membros que pertencem a ambos os conjuntos.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-View
Especifica que este cmdlet obtém apenas propriedades e métodos de tipos específicos. Especifique um ou mais dos valores. A predefinição é Adaptado, Expandido.
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 métodos definidos no sistema de tipos expandidos do PowerShell.
- Expandido. Obtém apenas as propriedades e métodos que foram adicionados num
Types.ps1xml
ficheiro ou através doAdd-Member
cmdlet. - Tudo. Obtém os membros nas vistas Base, Adaptada e Expandida.
O parâmetro Ver determina os membros obtidos e não apenas a apresentação desses membros.
Para obter tipos de membros específicos, como propriedades de script, utilize o parâmetro MemberType . Se utilizar os parâmetros MemberType e View no mesmo comando, Get-Member
obtém os membros que pertencem a ambos os conjuntos. Se utilizar os parâmetros Estático e Ver no mesmo comando, o parâmetro Ver é ignorado.
Type: | PSMemberViewTypes |
Accepted values: | Extended, Adapted, Base, All |
Position: | Named |
Default value: | Adapted, Extended |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Entradas
Pode encaminhar qualquer objeto para este cmdlet.
Saídas
Este cmdlet devolve um MemberDefinition para cada propriedade ou método que obtém.
Notas
O PowerShell inclui os seguintes aliases para Get-Member
:
- Todas as plataformas:
gm
Pode obter informações sobre um objeto de coleção através do parâmetro InputObject ou ao encaminhar o objeto, precedido por uma vírgula, para Get-Member
.
Pode utilizar 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 a ser adicionados. Para obter mais informações sobre a $This
variável, veja about_Automatic_Variables.
Se transmitir um objeto que representa um tipo, como um tipo literal, como [int]
, Get-Member
devolva informações sobre o [System.RuntimeType]
tipo. No entanto, quando utiliza o parâmetro Estático , Get-Member
devolve os membros estáticos do tipo específico representado pela System.RuntimeType
instância.
Ligações Relacionadas
Comentários
Submeter e ver comentários