Property vs. ExpandProperty en PowerShell

Property vs. ExpandProperty en PowerShell

Windows PowerShell se centraliza principalmente en la visualización y generación de objetos. Estos objetos son compatibles con detalles específicos denominados propiedades.

Este artículo discutirá qué son las propiedades y las diferenciará de las propiedades expandidas.

Property vs. ExpandProperty en PowerShell

Puede que no quede muy claro a la hora de explicar la diferencia entre propiedades y propiedades expandidas, así que pongamos un ejemplo que nos ayudará a visualizarlo mejor.

Comencemos por obtener las propiedades del comando Get-Process ejecutando el siguiente código.

Código de ejemplo:

Get-Process | Format-List -Property *

Al ejecutar el comando anterior, PowerShell generará una estructura de colecciones de información asociada con un objeto. El resultado a continuación son algunas de las muchas propiedades del comando Get-Process.

Producción :

Name                       : ApplicationFrameHost
Id                         : 13248
...
Modules                    : {System.Diagnostics.ProcessModule (ApplicationFrameHost.exe),
                             System.Diagnostics.ProcessModule (ntdll.dll), System.Diagnostics.ProcessModule
                             (KERNEL32.DLL), System.Diagnostics.ProcessModule (KERNELBASE.dll)...}

Obtengamos una de las propiedades de salida anteriores y examinémoslas más a fondo.

Código de ejemplo:

Get-Process | Select-Object -Property Modules

Producción :

Modules
------
{System.Diagnostics.ProcessModule (ApplicationFrameHost.exe), System.Diagnostics.ProcessModule (ntdll.dll), System.D...

Como podemos ver, una de las propiedades Modules que se muestra como salida; sin embargo, actualmente no es legible. Los datos de la propiedad Modules de arriba están colocados en un ArrayList.

Entonces, ¿cómo hacemos que esta propiedad sea más legible? Expandimos la propiedad usando el parámetro ExpandProperty.

El parámetro ExpandProperty se utiliza para examinar las subpropiedades de las propiedades principales de un objeto de PowerShell. PowerShell genera una estructura de varios niveles para definir los objetos, que son propiedades y propiedades expandidas.

Código de ejemplo:

Get-Process | Select-Object -ExpandProperty Modules

Producción :

   Size(K) ModuleName                                         FileName
   ------- ----------                                         --------
        84 ApplicationFrameHost.exe                           C:\WINDOWS\system32\ApplicationFrameHost.exe
        <SNIP>
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn