Compartir a través de


Get-Member

Obtiene las propiedades y los métodos de los objetos .

Sintaxis

Default (valor predeterminado)

Get-Member
    [[-Name] <String[]>]
    [-InputObject <PSObject>]
    [-MemberType <PSMemberTypes>]
    [-View <PSMemberViewTypes>]
    [-Static]
    [-Force]
    [<CommonParameters>]

Description

El cmdlet get-member de 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 para 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.

Ejemplos

Ejemplo 1: Obtener los miembros de los objetos de proceso

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;}

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

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

Dado que el get-member parte del comando no tiene ningún parámetro, usa todos los valores predeterminados. Por lo tanto, obtiene todos los tipos de miembro, pero no obtiene miembros estáticos y no muestra miembros intrínsecos.

Ejemplo 2: Obtener miembros de objetos de servicio

PS> Get-Service | Get-Member -Force
PS> (Get-Service Schedule).PSBase

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 usa el cmdlet Get-Service para obtener objetos que representan los servicios del sistema. Usa un operador de canalización (|) para pasar los objetos de servicio al cmdlet Get-Member.

El comando Get-Member 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. get-member obtiene estos miembros, pero los oculta de forma predeterminada.

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.

Ejemplo 3: Obtener miembros extendidos de objetos de servicio

PS> Get-Service| Get-Member -View Extended
TypeName: System.ServiceProcess.ServiceController
Name MemberType    Definition
---- ----------    ----------
Name AliasProperty Name = ServiceName

Este comando obtiene los métodos y propiedades de los objetos de servicio extendidos mediante el archivo Types.ps1xml o el cmdlet Add-Member.

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

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;}

Este comando obtiene las propiedades de script de los objetos de registro de eventos en el registro del sistema en el Visor de eventos.

El comando usa el parámetro MemberType para obtener solo objetos con un valor de ScriptProperty para su propiedad MemberType.

El comando devuelve la propiedad EventID del objeto EventLog.

Ejemplo 5: Obtener objetos con una propiedad especificada

PS> $A = "Get-Process", "Get-Service", "Get-Culture", "Get-PSDrive", "Get-ExecutionPolicy"
PS> ForEach ($Cmdlet in $A) {Invoke-Command $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;}

Este comando obtiene objetos que tienen una propiedad MachineName de una lista de cmdlets.

El primer comando almacena los nombres de varios cmdlets en la variable $A.

El segundo comando usa una instrucción ForEach para invocar cada comando, enviar los resultados a Get-Membery limitar los resultados de Get-Member a los miembros que tienen 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 6: Obtener miembros de una matriz

PS> $A = @(1)
PS> $A.Count
1
PS> Get-Member -InputObject $A
TypeName: System.Object[]
Name               MemberType    Definition
----               ----------    ----------
Count              AliasProperty Count = Length
Address            Method        System.Object& Address(Int32 )
Clone              Method        System.Object Clone()
...
PS> $A = @(1,2,3)
PS> Get-Member -InputObject $A
TypeName: System.Object[]
Name               MemberType    Definition
----               ----------    ----------
Count              AliasProperty Count = Length
Address            Method        System.Object& Address(Int32 )
Clone              Method        System.Object Clone()
...
PS> $A.Count
3

En este ejemplo se muestra cómo buscar las propiedades y los métodos de una matriz de objetos cuando solo tiene un objeto del tipo especificado.

Dado que el objetivo del comando es buscar las propiedades de una matriz, el primer comando usa el parámetro InputObject. Usa el símbolo en (@) para indicar una matriz. En este caso, la matriz contiene solo un objeto, el entero 1.

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

El cuarto comando usa la propiedad Count de la matriz para buscar el número de objetos en la variable $A.

Ejemplo 7: Determinar qué propiedades de objeto puede establecer

PS> $File = Get-Item c:\test\textFile.txt
PS> $File.psobject.properties | Where-Object {$_.issettable} | Format-Table -Property name
Name
----
PSPath
PSParentPath
PSChildName
PSDrive
PSProvider
PSIsContainer
IsReadOnly
CreationTime
CreationTimeUtc
LastAccessTime
LastAccessTimeUtc
LastWriteTime
LastWriteTimeUtc
Attributes
PS> [appdomain]::CurrentDomain.GetAssemblies() | ForEach-Object { $_.getexportedtypes() } | ForEach-Object {$_.getproperties() | Where-Object {$_.canwrite }} | Select-Object reflectedtype, name

En este ejemplo se muestra cómo determinar qué propiedades de un objeto se pueden cambiar. En el ejemplo se usa un archivo, pero puede usar este formato de comando para buscar las propiedades modificables de cualquier objeto en Windows PowerShell.

El primer comando usa el cmdlet Get-Item para obtener un archivo de texto y, a continuación, guarda el objeto de archivo en la variable $File.

El segundo comando obtiene todas las propiedades modificables del objeto file en la variable $File y muestra los nombres de las propiedades de una tabla.

El tercer comando obtiene las propiedades modificables de todos los objetos de la sesión de Windows PowerShell.

Ejemplo 8: Obtener miembros de cada elemento de una colección

PS> $S = Get-Service
PS> $S | Get-Member
TypeName: System.ServiceProcess.ServiceController
Name                      MemberType    Definition
----                      ----------    ----------
Name                      AliasProperty Name = ServiceName
RequiredServices          AliasProperty RequiredServices = ServicesDependedOn
Disposed                  Event         System.EventHandler Disposed(System.Object, System.EventArgs
Close                     Method        System.Void Close()
Continue                  Method        System.Void Continue()
CreateObjRef              Method        System.Runtime.Remoting.ObjRef CreateObjRef(type requestedTy
Dispose                   Method        System.Void Dispose()
...
PS> Get-Member -InputObject $S
TypeName: System.Object[]
Name           MemberType    Definition
----           ----------    ----------
Count          AliasProperty Count = Length
Address        Method        System.Object&, mscorlib, Version=2.0.0.0, Cultu
Clone          Method        System.Object Clone()
CopyTo         Method        System.Void CopyTo(array array, int index), Syst
Equals         Method        bool Equals(System.Object obj)
Get            Method        System.Object Get(int )
GetEnumerator  Method        System.Collections.IEnumerator GetEnumerator()
GetHashCode    Method        int GetHashCode()
...

En este ejemplo se muestra cómo funciona el parámetro InputObject en el cmdlet Get-Member de . Cuando se usa el parámetro InputObject para obtener los miembros de una colección, Get-Member obtiene los miembros de la colección. Al canalizar una colección de objetos a Get-Member, Get-Member obtiene los miembros de cada elemento de la colección.

El primer comando obtiene los servicios en el equipo local y guarda los servicios en la variable $S.

El segundo comando canaliza la variable $S al cmdlet get-member . Get-Member obtiene los tipos de cada miembro de $S y los miembros de ese tipo. En este caso, obtiene objetos ServiceController y enumera los miembros, como RequiredServices y Close.

El tercer comando usa el parámetro InputObject de Get-Member para enviar la variable $S. Get-Member obtiene el tipo (System.Object[]) y los miembros de la colección (o matriz) de objetos ServiceController, como Count y Clone.

Parámetros

-Force

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

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

  • PSBase: las propiedades originales del objeto de .NET Framework sin extensión ni adaptación. Estas son las propiedades definidas para la clase de objeto y enumeradas 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 en los archivos Types.ps1xml o mediante el cmdlet Add-Member.
  • PSObject. El adaptador que convierte el objeto base en un objeto de Windows PowerShellPSObject.
  • PSTypeNames. Lista de tipos de objeto que describen el objeto, en orden de especificidad. Al aplicar formato al objeto, Windows PowerShell busca los tipos en los archivos Format.ps1xml del directorio de instalación de Windows PowerShell ($pshome). Usa la definición de formato para el primer tipo que encuentra.

Propiedades de parámetro

Tipo:SwitchParameter
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Obligatorio: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 de no es el mismo que canalizar un objeto para Get-Member. Estas son las diferencias:

  • Al canalizar 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 en 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.

Propiedades de parámetro

Tipo:PSObject
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Obligatorio: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:

  • AliasProperty
  • CodeProperty
  • Propiedad
  • NoteProperty
  • ScriptProperty
  • Propiedades
  • ConjuntoDePropiedades
  • Método
  • CodeMethod
  • ScriptMethod
  • Métodos
  • ParameterizedProperty
  • MemberSet
  • Evento
  • Dinámico
  • Todos

Para obtener información sobre estos valores, vea enumeración PSMemberTypes en MSDN Library.

No todos los objetos tienen todos los tipos de miembro. Si especifica un tipo de miembro que el objeto no tiene, Windows 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 de 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
Obligatorio: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 de con el MemberType, Viewo parámetro 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 de .

Propiedades de parámetro

Tipo:

String[]

Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:0
Obligatorio: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 el parámetro View, se omite el parámetro View de . Si usa el parámetro Static con el parámetro MemberType, Get-Member obtiene solo los miembros que pertenecen a ambos conjuntos.

Propiedades de parámetro

Tipo:SwitchParameter
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Obligatorio: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 válidos son:

  • Base. Obtiene solo las propiedades y métodos originales del objeto de .NET Framework (sin extensión ni adaptación).
  • Adaptado. Obtiene solo las propiedades y los métodos definidos en el sistema de tipos extendidos de Windows PowerShell.
  • Extendido. Obtiene solo las propiedades y los métodos que se agregaron en los archivos Types.ps1xml o mediante el cmdlet Add-Member.
  • 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 de parámetro

Tipo:PSMemberViewTypes
Valor predeterminado:None
Valores aceptados:Extended, Adapted, Base, All
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Obligatorio: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 Get-Member.

Salidas

MemberDefinition

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

Notas

  • Puede obtener información sobre un objeto de colección mediante el parámetro InputObject o canalizando el objeto, precedido por una coma, para 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 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 $This, consulte about_Automatic_Variables.