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 los Types.ps1xml archivos o mediante el Add-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 los Format.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 el Add-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

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 $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.