Get-Member
Obtiene las propiedades y los métodos de los objetos .
Sintaxis
Default (Es el valor predeterminado).
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 los objetos de registro de eventos en el registro del sistema en el 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-MemberInputObject devuelve los miembros del tipo Object[].
Ejemplo 7: Determinar qué propiedades de objeto puede establecer
En este ejemplo se 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 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.ps1xmlarchivos o mediante elAdd-Membercmdlet . -
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.ps1xmlarchivos en el directorio de instalación de PowerShell ($PSHOME). Usa la definición de formato para el primer tipo que encuentra.
De forma predeterminada, Get-Member obtiene estas propiedades en todas las vistas excepto Base y Adaptado, pero no las muestra.
Propiedades del parámetro
| Tipo: | SwitchParameter |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | 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-Memberobtiene 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-Memberobtiene los miembros de la colección, como las propiedades de la matriz en una matriz de cadenas.
Propiedades del parámetro
| Tipo: | PSObject |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | True |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-MemberType
Especifica el tipo de miembro que obtiene este cmdlet. El valor predeterminado es All.
Los valores aceptables para este parámetro son:
AliasPropertyCodePropertyPropertyNotePropertyScriptPropertyPropertiesPropertySetMethodCodeMethodScriptMethodMethodsParameterizedPropertyMemberSetEventDynamicAll
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 todos 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.
Propiedades del parámetro
| Tipo: | PSMemberTypes |
| Valor predeterminado: | None |
| Valores aceptados: | AliasProperty, CodeProperty, Property, NoteProperty, ScriptProperty, Properties, PropertySet, Method, CodeMethod, ScriptMethod, Methods, ParameterizedProperty, MemberSet, Event, Dynamic, All |
| Admite caracteres comodín: | False |
| DontShow: | False |
| Alias: | Tipo |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | 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
Propiedades del parámetro
| Tipo: | String[] |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | 0 |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | 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 ninguna instancia determinada 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.
Propiedades del parámetro
| Tipo: | SwitchParameter |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | 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 aceptables para este parámetro son:
- 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.ps1xmlarchivo o mediante elAdd-Membercmdlet . - Todos. Obtiene los miembros de las vistas base, adaptadas y extendidas.
El parámetro View determina los miembros recuperados, no solo la presentación de esos miembros.
Para obtener tipos de miembro 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 de Static y View en el mismo comando, se omite el parámetro View.
Propiedades del parámetro
| Tipo: | PSMemberViewTypes |
| Valor predeterminado: | Adapted, Extended |
| Valores aceptados: | Extended, Adapted, Base, All |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
CommonParameters
Este cmdlet admite los parámetros comunes: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction y -WarningVariable. Para obtener más información, vea about_CommonParameters.
Entradas
PSObject
Puede canalizar cualquier objeto a este cmdlet.
Salidas
MemberDefinition
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 variable automática $this en bloques de script que definen los valores de las nuevas propiedades y métodos. La variable $this 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 variable de $this, vea 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.