Get-Member
Obtiene las propiedades y los métodos de objetos.
Sintaxis
Get-Member
[-InputObject <PSObject>]
[[-Name] <String[]>]
[-MemberType <PSMemberTypes>]
[-View <PSMemberViewTypes>]
[-Static]
[-Force]
[<CommonParameters>]
Description
El Get-Member
cmdlet obtiene los miembros, las propiedades y los métodos de los objetos .
Para especificar el objeto, use el parámetro InputObject o canalice un objeto a Get-Member
. Para obtener información sobre los miembros estáticos, los miembros de la clase, no de la instancia, use el parámetro Static . Para obtener solo determinados tipos de miembros, como NoteProperties, use el parámetro MemberType.
Get-Member
devuelve una lista de miembros ordenados alfabéticamente. Los métodos se enumeran primero, seguidos de las propiedades .
Ejemplos
Ejemplo 1: Obtener los miembros de los objetos de proceso
Este comando muestra las propiedades y los métodos de los objetos de servicio generados por el Get-Service
cmdlet .
Dado que la Get-Member
parte del comando no tiene parámetros, usa valores predeterminados para los parámetros. De forma predeterminada, Get-Member
no obtiene miembros estáticos ni 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();
Ejemplo 2: Obtener miembros de objetos de servicio
En este ejemplo se obtienen todos los miembros (propiedades y métodos) de los objetos de servicio recuperados por el Get-Service
cmdlet, incluidos los miembros intrínsecos, como PSBase, PSObject y los métodos get_ y set_ .
Get-Service | Get-Member -Force
(Get-Service Schedule).PSBase
El Get-Member
comando usa el parámetro Force para agregar los miembros intrínsecos y los miembros generados por el compilador de los objetos a la presentación. Puede usar estas propiedades y métodos de la misma manera que usaría un método adaptado del objeto. El segundo comando muestra cómo mostrar el valor de la propiedad PSBase del servicio Schedule. Para obtener más información sobre los miembros intrínsecos, consulte about_Intrinsic_Members
Ejemplo 3: Obtener miembros extendidos de objetos de servicio
En este ejemplo se obtienen los métodos y propiedades de los objetos de servicio extendidos mediante un Types.ps1xml
archivo o el 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();
El Get-Member
comando usa el parámetro View para obtener solo los miembros extendidos de los objetos de servicio. En este caso, el miembro extendido es la propiedad Name , que es una propiedad de alias de la propiedad ServiceName .
Ejemplo 4: Obtención de propiedades de script de objetos de registro de eventos
En este ejemplo se obtienen las propiedades de script de objetos de registro de eventos en el registro del sistema en Visor 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 ...
El parámetro MemberType solo obtiene objetos con un valor de NoteProperty
para su propiedad MemberType .
El comando devuelve la propiedad Message del objeto EventLogRecord .
Ejemplo 5: Obtener objetos con una propiedad especificada
En este ejemplo se obtienen objetos que tienen una propiedad MachineName en la salida de una lista de cmdlets.
La $list
variable contiene una lista de cmdlets que se van a evaluar. La foreach
instrucción invoca cada comando y envía los resultados a Get-Member
. El parámetro Name limita los resultados de Get-Member
a los miembros que tienen el nombre 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;}
Los resultados muestran que solo los objetos de proceso y los objetos de servicio tienen una propiedad MachineName .
Ejemplo 6: Obtener miembros de una matriz
En este ejemplo se muestra cómo buscar los miembros de una matriz de objetos. Cuando canaliza y matriz de objetos a Get-Member
, el cmdlet devuelve una lista de miembros para cada tipo de objeto único de la matriz.
Si pasa la matriz mediante el parámetro InputObject , la matriz se trata como un ú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...
...
La $array
variable contiene un objeto Int32 y un objeto de cadena , como se ve cuando la matriz se canaliza a Get-Member
. Cuando $array
se pasa mediante el parámetro Get-Member
InputObject devuelve los miembros del tipo Object[].
Ejemplo 7: Determinar qué propiedades de objeto puede establecer
Este ejemplo muestra cómo determinar qué propiedades de un objeto se pueden cambiar.
$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
Ejemplo 8: Enumerar las propiedades de un objeto en el orden en que se crearon
En este ejemplo se crea un nuevo PSObject y se agregan propiedades a él. Get-Member
enumera las propiedades en orden alfabético. Para ver las propiedades en el orden en que se agregaron al objeto, debe usar el miembro 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
Agrega los miembros intrínsecos y los métodos de get_ generados por el compilador y set_ a la presentación. En la lista siguiente se describen las propiedades que se agregan al usar el parámetro Force :
PSBase
: las propiedades originales del objeto .NET sin extensión ni adaptación. Estas son las propiedades definidas para la clase de objeto.PSAdapted
: propiedades y métodos definidos en el sistema de tipos extendidos de PowerShell.PSExtended
: propiedades y métodos que se agregaron en losTypes.ps1xml
archivos o mediante elAdd-Member
cmdlet .PSObject
: el adaptador que convierte el objeto base en un objeto PSObject de PowerShell.PSTypeNames
: lista de tipos de objeto que describen el objeto, en orden de especificidad. Al aplicar formato al objeto, PowerShell busca los tipos de losFormat.ps1xml
archivos en el directorio de instalación de PowerShell ($PSHOME
). Usa la definición de formato para el primer tipo que encuentre.
De forma predeterminada, Get-Member
obtiene estas propiedades en todas las vistas excepto Base y Adaptado, pero no las muestra.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-InputObject
Especifica el objeto cuyos miembros se recuperan.
El uso del parámetro InputObject no es el mismo que canalizar un objeto a Get-Member
. Estas son las diferencias:
- Cuando canaliza una colección de objetos a
Get-Member
,Get-Member
obtiene los miembros de los objetos individuales de la colección, como las propiedades de cada cadena de una matriz de cadenas. - Cuando se usa InputObject para enviar una colección de objetos,
Get-Member
obtiene los miembros de la colección, como las propiedades de la matriz en una matriz de cadenas.
Tipo: | PSObject |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | False |
-MemberType
Especifica el tipo de miembro que obtiene este cmdlet. El valor predeterminado es All
.
Los valores permitidos para este parámetro son los siguientes:
AliasProperty
CodeProperty
Property
NoteProperty
ScriptProperty
Properties
PropertySet
Method
CodeMethod
ScriptMethod
Methods
ParameterizedProperty
MemberSet
Event
Dynamic
All
Estos valores se definen como una enumeración basada en marcas. Puede combinar varios valores para establecer varias marcas mediante este parámetro. Los valores se pueden pasar al parámetro MemberType como una matriz de valores o como una cadena separada por comas de esos valores. El cmdlet combinará los valores mediante una operación binary-OR. Pasar valores como una matriz es la opción más sencilla y también permite usar la finalización de tabulación en los valores.
Para obtener información sobre estos valores, vea ENUMERAción PSMemberTypes.
No todos los objetos tienen cada uno de los tipos de miembro. Si especifica un tipo de miembro que el objeto no tiene, PowerShell devuelve un valor NULL. Para obtener tipos relacionados de miembros, como todos los miembros extendidos, use el parámetro View . Si usa el parámetro MemberType con los parámetros Static o View , Get-Member
obtiene los miembros que pertenecen a ambos conjuntos.
Tipo: | PSMemberTypes |
Alias: | Type |
Valores aceptados: | AliasProperty, CodeProperty, Property, NoteProperty, ScriptProperty, Properties, PropertySet, Method, CodeMethod, ScriptMethod, Methods, ParameterizedProperty, MemberSet, Event, Dynamic, All |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Name
Especifica los nombres de una o varias propiedades o métodos del objeto. Get-Member
obtiene solo las propiedades y métodos especificados.
Si usa el parámetro Name con el parámetro MemberType, View o Static , Get-Member
obtiene solo los miembros que cumplen los criterios de todos los parámetros.
Para obtener un miembro estático por nombre, use el parámetro Static con el parámetro Name .
Tipo: | String[] |
Posición: | 0 |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Static
Indica que este cmdlet obtiene solo las propiedades estáticas y los métodos del objeto . Las propiedades y los métodos estáticos se definen en la clase de objetos, no en cualquier instancia concreta de la clase.
Si usa el parámetro Static con los parámetros View o Force , el cmdlet omite esos parámetros. Si usa el parámetro Static con el parámetro MemberType , Get-Member
obtiene solo los miembros que pertenecen a ambos conjuntos.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-View
Especifica que este cmdlet obtiene solo determinados tipos de propiedades y métodos. Especifique uno o varios de los valores. El valor predeterminado es Adaptado, Extendido.
Los valores permitidos para este parámetro son los siguientes:
- Base. Obtiene solo las propiedades y métodos originales del objeto .NET (sin extensión ni adaptación).
- Adaptado. Obtiene solo las propiedades y los métodos definidos en el sistema de tipos extendidos de PowerShell.
- Extendido. Obtiene solo las propiedades y los métodos que se agregaron en un
Types.ps1xml
archivo o mediante elAdd-Member
cmdlet . - Todos. obtiene los miembros de las vistas Base, Adapted y Extended.
El parámetro View determina los miembros recuperados, no solo la presentación de esos miembros.
Para obtener tipos de miembros concretos, como propiedades de script, use el parámetro MemberType . Si usa los parámetros MemberType y View en el mismo comando, Get-Member
obtiene los miembros que pertenecen a ambos conjuntos. Si usa los parámetros Static y View en el mismo comando, se omite el parámetro View .
Tipo: | PSMemberViewTypes |
Valores aceptados: | Extended, Adapted, Base, All |
Posición: | Named |
Valor predeterminado: | Adapted, Extended |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
Entradas
Puede canalizar cualquier objeto a este cmdlet.
Salidas
Este cmdlet devuelve un MemberDefinition para cada propiedad o método que obtiene.
Notas
PowerShell incluye los siguientes alias para Get-Member
:
- Todas las plataformas:
gm
Puede obtener información sobre un objeto de colección mediante el parámetro InputObject o canalizando el objeto, precedido por una coma, a Get-Member
.
Puede usar la $This
variable automática en bloques de script que definen los valores de las nuevas propiedades y métodos. La $This
variable hace referencia a la instancia del objeto al que se agregan las propiedades y los métodos. Para obtener más información sobre la $This
variable, consulte about_Automatic_Variables.
Si pasa un objeto que representa un tipo, como un literal de tipo como [int]
, Get-Member
devuelve información sobre el [System.RuntimeType]
tipo. Sin embargo, cuando se usa el parámetro Static , Get-Member
devuelve los miembros estáticos del tipo específico representado por la System.RuntimeType
instancia.