Detectar objetos
Cuando se ejecuta un cmdlet, devuelve un objeto. Cuando invoca un cmdlet, la respuesta que ve ya tiene formato y es posible que no represente necesariamente toda la información disponible para la respuesta. Si desea obtener más información sobre la respuesta que se devuelve y cómo modificarla, puede usar el comando Get-Member
.
Descubrimiento de objetos mediante Get-Member
El cmdlet Get-Member
está diseñado para canalizarse sobre el comando que se ejecuta, de modo que pueda filtrar la salida. Una invocación de línea de comandos típica de Get-Member
puede ser similar al ejemplo siguiente:
Get-Process -Name 'name-of-process' | Get-Member
Este comando primero genera un resultado de objeto mediante la llamada a Get-Process
. Ese resultado se pasa como una entrada a Get-Member
mediante la barra vertical (|
). A cambio, se obtiene un resultado de tabla que incluye las columnas Name
, MemberType
y Definition
. También se obtiene el tipo del objeto devuelto.
Sugerencia
Para obtener una lista de los procesos que se ejecutan en el equipo, ejecute Get-Process
.
Búsqueda por nombre
La primera línea de la respuesta, al ejecutar el comando Get-Member
, es el tipo del objeto devuelto. Cuando se conoce el tipo, se pueden buscar otros cmdlets que operen en el mismo tipo. Explore estos comandos relacionados para aumentar los conocimientos sobre el dominio en el que trabaje.
Imagine que ha invocado el comando de PowerShell que enumera todos los miembros de un proceso concreto. Las primeras filas del resultado tienen un aspecto similar al siguiente:
TypeName: System.Diagnostics.Process
Name MemberType Definition
---- ---------- ----------
Handles AliasProperty Handles = Handlecount
La primera fila indica que el tipo es System.Diagnostics.Process
. Use este tipo como argumento de búsqueda para buscar otros cmdlets que utilicen este tipo. Este es un comando de ejemplo:
Get-Command -ParameterType Process
El resultado es una lista de los cmdlets que operan en este tipo. Progresivamente, podrá obtener más información sobre PowerShell mediante Get-Member
y aprendiendo a interpretar su resultado.
Sugerencia
PowerShell está diseñado para que se aprenda progresivamente. Una excelente manera de descubrir cmdlets relacionados consiste en usar el tipo devuelto para buscar cmdlets por tipo.
Filtrado de un resultado de Get-Member mediante Select-Object
Al ejecutar Get-Member
, el resultado es detallado. Es decir, se devuelven muchas filas. Es posible que el objeto tenga propiedades como eventos y métodos. Para que la respuesta sea menos detallada, puede filtrar por columnas concretas y decidir también qué columnas se van a mostrar. Tenga en cuenta que la respuesta devuelta ya es un subconjunto de todas las columnas de la respuesta.
Examine una respuesta Get-Member
que incluye muchas columnas. Mediante la introducción del cmdlet Select-Object
, puede elegir qué columnas aparecen en la respuesta. El comando espera una lista separada por comas de nombres de columna o un carácter comodín, como un asterisco (*
), que indica todas las columnas.
Cuando se usa el comando Select-Object
en el contexto de Select-Object Name, MemberType
, solo se especifican las columnas deseadas. En este caso, las columnas son Name
y MemberType
. La línea de comandos sería algo parecido a esto:
Get-Process -Name 'name-of-process' | Get-Member | Select-Object Name, MemberType
Este patrón de filtrado devuelve una salida que incluye menos columnas. Este es un ejemplo del resultado:
Name MemberType
---- ----------
Handles AliasProperty
También puede filtrar la respuesta por filas. Por ejemplo, puede usar la marca -MemberType Method
para especificar que está interesado en las filas en las que el tipo de miembro es un método. Es posible que solo quiera mostrar filas concretas, por ejemplo, si quiere localizar un método específico y ejecutarlo.
Sugerencia
Por lo general, es mejor usar cmdlets dedicados que ejecutar métodos en un objeto.