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 specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn