Get-Member
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.