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
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
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
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
- 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
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
Para obtener un miembro estático por nombre, use el parámetro
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
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.