Obtiene las propiedades y los métodos de objetos.

Sintaxis

Get-Member [[-Name] <string[]>] [-Force] [-InputObject <psobject>] [-MemberType {<AliasProperty> | <CodeProperty> | <Property> | <NoteProperty> | <ScriptProperty> | <Properties> | <PropertySet> | <Method> | <CodeMethod> | <ScriptMethod> | <Methods> | <ParameterizedProperty> | <MemberSet> | <Event> | <All>}] [-Static] [-View {<Extended> | <Adapted> | <Base> | <All>}] [<CommonParameters>]

Descripción

El cmdlet Get-Member obtiene los "miembros" (propiedades y métodos) de los objetos.

Para especificar el objeto, use el parámetro InputObject o canalice un objeto a Get-Member. Para recuperar información sobre los miembros estáticos (miembros de la clase, no de la instancia), utilice el parámetro Static. Para obtener solo determinados tipos de miembros, como NoteProperties, use el parámetro MemberType.

Parámetros

-Force

Agrega a la pantalla los miembros intrínsecos (PSBase, PSAdapted, PSObject, PSTypeNames) y los métodos get_ y set_ generados por el compilador. De forma predeterminada, Get-Member obtiene estas propiedades en todas las vistas que no sean "Base" ni "Adapted", pero no las muestra.

En la lista siguiente se describen las propiedades que se agregan mediante el parámetro Force:

-- PSBase: propiedades originales del objeto de .NET Framework sin extensión ni adaptación. Son las propiedades que se han definido para la clase de objeto y se muestran en MSDN.

-- PSAdapted: propiedades y métodos definidos en el sistema de tipos extendidos de Windows PowerShell.

-- PSExtended: propiedades y métodos que se agregaron a los archivos Types.ps1xml o mediante el cmdlet Add-Member.

-- PSObject: adaptador que convierte el objeto base en un PsObject de Windows PowerShell.

-- PSTypeNames: lista de tipos de objeto que describen el objeto, según su especificidad. Al dar formato al objeto, Windows PowerShell busca los tipos en los archivos Format.ps1xml ubicados en el directorio de instalación de Windows PowerShell ($pshome). Utiliza la definición de formato del primer tipo que encuentre.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-InputObject <psobject>

Especifica el objeto cuyos miembros se recuperan.

Utilizar el parámetro InputObject no equivale a canalizar un objeto a Get-Member. Las diferencias son:

-- Cuando se canaliza una colección de objetos a Get-Member, Get-Member obtiene los miembros de los objetos individuales en la colección, como las propiedades de los enteros en una matriz de enteros.

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

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

true (ByValue)

¿Aceptar caracteres comodín?

false

-MemberType <PSMemberTypes>

Obtiene únicamente los miembros con el tipo de miembro especificado. El valor predeterminado es All.

Los valores apropiados para este parámetro son:

-- AliasProperty: una propiedad que define un nuevo nombre para una propiedad existente.

-- CodeMethod: un método que hace referencia a un método estático de una clase de .NET Framework.

-- CodeProperty: una propiedad que hace referencia a una propiedad estática de una clase de .NET Framework.

-- Event: indica que el objeto envía un mensaje para indicar una acción o un cambio de estado.

-- MemberSet: una colección predefinida de propiedades y métodos, como PSBase, PSObject y PSTypeNames.

-- Method: un método del objeto subyacente de .NET Framework.

-- NoteProperty: una propiedad con un valor estático.

-- ParameterizedProperty: una propiedad que toma parámetros y valores de parámetro.

-- Property: una propiedad del objeto subyacente de .NET Framework.

-- PropertySet: una colección predefinida de propiedades de objeto.

-- ScriptMethod: un método cuyo valor es el resultado de un script.

-- ScriptProperty: una propiedad cuyo valor es el resultado de un script.

-- All: obtiene todos los tipos de miembro.

-- Methods: obtiene todos los tipos de método del objeto (por ejemplo, Method, CodeMethod, ScriptMethod).

-- Properties: obtiene todos los tipos de propiedad del objeto (por ejemplo, Property, CodeProperty, AliasProperty, ScriptProperty).

No todos los objetos tienen cada tipo de miembro. Si especifica un tipo de miembro que el objeto no tiene, Windows PowerShell devuelve un valor NULL.

Para obtener los tipos relacionados de los miembros, como todos los miembros extendidos, use el parámetro View. Si utiliza el parámetro MemberType con los parámetros Static o View, Get-Member obtiene los miembros que pertenecen a ambos conjuntos.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-Name <string[]>

Especifica el nombre de uno o varios métodos o propiedades del objeto. Get-Member obtiene solo los métodos y propiedades especificados.

Si utiliza el parámetro Name con el parámetro MemberType, View o Static, Get-Member obtendrá solo los miembros que cumplan los criterios de todos los parámetros.

Para obtener un miembro estático por su nombre, use el parámetro Static con el parámetro Name.

¿Requerido?

false

¿Posición?

1

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-Static

Obtiene solo los métodos y propiedades estáticos del objeto.

Los métodos y propiedades estáticos se definen en la clase de los objetos; no se definen en ninguna instancia concreta de la clase.

Si utiliza el parámetro Static con el parámetro View, se omite el parámetro View. Si utiliza el parámetro Static con el parámetro MemberType, Get-Member obtiene solo los miembros que pertenecen a ambos conjuntos.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-View <PSMemberViewTypes>

Obtiene solo determinados tipos de miembros (propiedades y métodos). Especifique uno o varios valores. El valor predeterminado es "Adapted, Extended".

Los valores válidos son:

-- Base: obtiene solo los métodos y propiedades originales del objeto de .NET Framework (sin extensión ni adaptación).

-- Adapted: obtiene solo los métodos y propiedades definidos en el sistema de tipos extendidos de Windows PowerShell.

-- Extended: obtiene solo los métodos y propiedades que se agregaron a los archivos Types.ps1xml o mediante el cmdlet Add-Member.

-- All: obtiene los miembros en las vistas Base, Adapted y Extended.

El parámetro View determina los miembros que se van a recuperar y no solo su presentación.

Para obtener determinados tipos de miembros, como propiedades de script, use el parámetro MemberType. Si utiliza los parámetros MemberType y View en el mismo comando, Get-Member obtiene los miembros que pertenecen a ambos conjuntos. Si utiliza los parámetros Static y View en el mismo comando, se omitirá el parámetro View.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

<CommonParameters>

Este cmdlet admite los parámetros comunes: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer y -OutVariable. Para obtener más información, vea about_Commonparameters.

Entradas y salidas

El tipo de entrada es el tipo de los objetos que se pueden canalizar al cmdlet. El tipo devuelto es el tipo de los objetos que el cmdlet devuelve.

Entradas

System.Management.Automation.PSObject

Puede canalizar cualquier objeto a Get-Member.

Salidas

Microsoft.PowerShell.Commands.MemberDefinition

Get-Member devuelve un objeto para cada propiedad o método que obtiene.

Notas

Puede recuperar información sobre un objeto Collection mediante el parámetro InputObject o si canaliza el objeto, precedido por una coma, a Get-Member.

Ejemplo 1

C:\PS>get-service | get-member


   TypeName: System.ServiceProcess.ServiceController

Name                      MemberType    Definition
----                      ----------    ----------
Name                      AliasProperty Name = ServiceName
Close                     Method        System.Void Close()
Continue                  Method        System.Void Continue()
CreateObjRef              Method        System.Runtime.Remoting.ObjRef CreateObjRef(Type requestedType)
Dispose                   Method        System.Void Dispose()
Equals                    Method        System.Boolean Equals(Object obj)
ExecuteCommand            Method        System.Void ExecuteCommand(Int32 command)
GetHashCode               Method        System.Int32 GetHashCode()
GetLifetimeService        Method        System.Object GetLifetimeService()
GetType                   Method        System.Type GetType()
InitializeLifetimeService Method        System.Object InitializeLifetimeService()
Pause                     Method        System.Void Pause()
Refresh                   Method        System.Void Refresh()
Start                     Method        System.Void Start(), System.Void Start(String[] args)
Stop                      Method        System.Void Stop()
ToString                  Method        System.String ToString()
WaitForStatus             Method        System.Void WaitForStatus(ServiceControllerStatus desiredStatus), System.Voi...
CanPauseAndContinue       Property      System.Boolean CanPauseAndContinue {get;}
CanShutdown               Property      System.Boolean CanShutdown {get;}
CanStop                   Property      System.Boolean CanStop {get;}
Container                 Property      System.ComponentModel.IContainer Container {get;}
DependentServices         Property      System.ServiceProcess.ServiceController[] DependentServices {get;}
DisplayName               Property      System.String DisplayName {get;set;}
MachineName               Property      System.String MachineName {get;set;}
ServiceHandle             Property      System.Runtime.InteropServices.SafeHandle ServiceHandle {get;}
ServiceName               Property      System.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;}
Status                    Property      System.ServiceProcess.ServiceControllerStatus Status {get;}

Descripción
-----------
Este comando muestra los métodos y propiedades de los objetos de proceso (System.ServiceProcess.ServiceController) generados por el cmdlet Get-Service.

El comando utiliza el operador de canalización (|) para enviar el resultado de un comando Get-Service a Get-Member.

Dado que la parte del comando correspondiente a Get-Member no tiene ningún parámetro, utiliza todos los valores predeterminados. Como tal, obtiene todos los tipos de miembro, pero no obtiene los miembros estáticos ni muestra los miembros intrínsecos.






Ejemplo 2

C:\PS>get-service | get-member -force

C:\PS> (get-service -schedule).psbase

Descripción
-----------
En este ejemplo, se obtienen todos los miembros (propiedades y métodos) de los objetos de servicio (System.ServiceProcess.ServiceController) recuperados por el cmdlet Get-Service, incluidos los miembros intrínsecos, como PSBase y PSObject, y los métodos get_ y set_.

El primer comando utiliza el cmdlet Get-Service para obtener los objetos que representan los servicios en el sistema. Utiliza un operador de canalización (|) para pasar los objetos de servicio al cmdlet Get-Member.

El comando Get-Member utiliza el parámetro Force para agregar a la presentación los miembros intrínsecos de los objetos así como los miembros generados por el compilador. Get-Member obtiene estos miembros pero los oculta de forma predeterminada.

Estos métodos y propiedades pueden usarse del mismo modo en que se usaría un método adaptado del objeto. El segundo comando indica cómo se va a mostrar el valor de la propiedad PSBase del servicio Schedule.






Ejemplo 3

C:\PS>get-service	| get-member -view extended

   TypeName: System.ServiceProcess.ServiceController

Name MemberType    Definition
---- ----------    ----------
Name AliasProperty Name = ServiceName

Descripción
-----------
Este comando obtiene los métodos y propiedades de los objetos de servicio que se extendieron mediante el archivo Types.ps1xml o el cmdlet Add-Member. 


El comando Get-Member utiliza 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

C:\PS>get-eventlog -log system | gm -membertype scriptproperty

   TypeName: System.Diagnostics.EventLogEntry

Name    MemberType     Definition
----    ----------     ----------
EventID ScriptProperty System.Object EventID {get=$this.get_EventID() -band 0xFFFF;}

Descripción
-----------
Este comando obtiene las propiedades de script de los objetos de registro de eventos del registro del sistema en el visor de eventos. En este caso, la única propiedad de script es EventID.






Ejemplo 5

C:\PS>get-eventlog -log system | get-member -membertype scriptproperty


   TypeName: System.Diagnostics.EventLogEntry

Name    MemberType     Definition
----    ----------     ----------
EventID ScriptProperty System.Object EventID {get=$this.get_EventID() -band 0xFFFF;}

Descripción
-----------
Este comando obtiene las propiedades de script de los objetos de registro de eventos del registro del sistema en el visor de eventos. 

El comando utiliza el parámetro MemberType para obtener solo los objetos que tengan el valor AliasProperty para su propiedad MemberType.

El comando devuelve la propiedad EventID del objeto EventLog.






Ejemplo 6

C:\PS>$a = "get-process", "get-service", "get-culture", "get-psdrive", "get-executionpolicy"

C:\PS> foreach ($cmdlet in $a) {invoke-expression $cmdlet | get-member -name machinename}

TypeName: System.Diagnostics.Process

Name        MemberType Definition
----        ---------- ----------
MachineName Property   System.String MachineName {get;}


   TypeName: System.ServiceProcess.ServiceController

Name        MemberType Definition
----        ---------- ----------
MachineName Property   System.String MachineName {get;set;}

Descripción
-----------
Este comando obtiene objetos con una propiedad MachineName de una lista de cmdlets.

El primer comando almacena los nombres de varios cmdlets en una variable $a.

El segundo comando usa una instrucción ForEach para invocar cada comando, enviar los resultados a Get-Member y limitar los resultados de Get-Member a los miembros que tengan el nombre "MachineName".

Los resultados muestran que solo los objetos de proceso (System.Diagnostics.Process) y los objetos de servicio (System.ServiceProcess.ServiceController) tienen una propiedad MachineName.






Ejemplo 7

C:\PS>$a = get-member -inputobject @(1)

C:\PS>$a.count

1

C:\PS> $a = get-member -inputobject 1,2,3

   TypeName: System.Object[]
Name               MemberType    Definition
----               ----------    ----------
Count              AliasProperty Count = Length
Address            Method        System.Object& Address(Int32 )
Clone              Method        System.Object Clone()
...

C:\PS>$a.count
1

Descripción
-----------
En este ejemplo se muestra cómo buscar los métodos y propiedades de una matriz de objetos cuando se dispone de solo un objeto del tipo dado.

Dado que el objetivo del comando es obtener las propiedades de una matriz, el primer comando utiliza el parámetro InputObject. Utiliza el símbolo "arroba" (@) para indicar una matriz. En este caso, la matriz contiene solamente un objeto, el entero 1. 

El tercer comando usa el cmdlet Get-Member para obtener los métodos y propiedades de una matriz de enteros y los guarda en la variable $a.

El cuarto comando usa la propiedad Count de la matriz para obtener el número de objetos almacenados en la variable $a.






Vea también




Tabla de contenido