Cómo agregar propiedades a objetos en PowerShell
- Usar Tablas Hash para Crear Objetos Personalizados en PowerShell
-
Usar
Add-Member
para Agregar Propiedades a Objetos en PowerShell -
Usar
Properties.Add()
para Agregar Propiedades a Objetos en PowerShell -
Usar
Select-Object
para Agregar Propiedades a Objetos en PowerShell - Conclusión

Este artículo profundiza en varios métodos para agregar propiedades a objetos en PowerShell, una técnica esencial para los usuarios de PowerShell que van desde principiantes hasta expertos. Comenzamos explorando el uso de tablas hash para crear objetos personalizados, un enfoque directo pero poderoso.
A continuación, presentamos el cmdlet Add-Member
, una herramienta versátil para agregar dinámicamente propiedades a objetos existentes. A medida que profundizamos, descubrimos las complejidades del método Properties.Add()
, ofreciendo una forma más matizada y controlada de mejorar objetos.
Finalmente, discutimos el uso de Select-Object
en combinación con una tabla hash, un método perfecto para modificaciones temporales y para preservar el estado del objeto original.
Esta guía completa tiene como objetivo proporcionar información práctica y ejemplos para empoderar a los usuarios de PowerShell a personalizar objetos según sus necesidades específicas.
Usar Tablas Hash para Crear Objetos Personalizados en PowerShell
Antes de agregar propiedades a un objeto, primero debemos crear uno. Una forma de hacerlo es a través de tablas hash.
Para definir brevemente, las tablas hash son conjuntos de claves o pares de valores que necesitamos crear y asignar las propiedades de un objeto en PowerShell. En el ejemplo, estamos creando una tabla hash que representa un solo objeto y sus propiedades.
Una vez que se ha definido la tabla hash, $sampleHashtable
, podemos usar el acelerador de tipo PSCustomObject
para crear una instancia de la clase PSCustomObject
.
Después de ejecutar el fragmento de código, obtendremos un objeto $sampleHashtable
de tipo PSCustomObject
con propiedades definidas en el programa.
Ejemplo 1:
$sampleObject = [PSCustomObject]@{
ID = 1
Shape = "Square"
Color = "Blue"
}
Como podemos ver, después de crear $sampleHashtable
, podremos referenciar cada propiedad como si proviniera de un cmdlet incorporado de PowerShell como Get-Service
.
Usar Add-Member
para Agregar Propiedades a Objetos en PowerShell
La versatilidad de PowerShell como lenguaje de scripting se debe en parte a su capacidad para manipular objetos de manera dinámica. Un ejemplo principal de esta capacidad es el cmdlet Add-Member
, que permite a los usuarios agregar propiedades y métodos a objetos en tiempo de ejecución.
El cmdlet Add-Member
es una herramienta esencial en PowerShell para agregar dinámicamente miembros, como propiedades, métodos o eventos, a una instancia de un objeto. Esta función es especialmente útil para personalizar objetos para adaptarse a necesidades específicas o para aumentar estructuras de datos con información adicional.
Ejemplo:
$sampleObject | Add-Member -MemberType NoteProperty -Name 'Size' -Value 'Large'
Write-Output $sampleObject
En este ejemplo, comenzamos creando $sampleObject
, un objeto personalizado de PowerShell con propiedades predefinidas. Nuestro objetivo era mejorar este objeto al agregar una nueva propiedad.
Usando el cmdlet Add-Member
, agregamos una NoteProperty
llamada Size
con el valor Large
a $sampleObject
. Este proceso demuestra el poder de PowerShell para extender objetos de manera dinámica.
Se eligió NoteProperty
porque es adecuado para valores estáticos, que era nuestra necesidad.
Por último, utilizamos Write-Host
para imprimir el objeto actualizado, demostrando efectivamente la adición de la nueva propiedad.
Salida:
Usar Properties.Add()
para Agregar Propiedades a Objetos en PowerShell
Un método poco conocido pero poderoso para mejorar objetos es usar el método Properties.Add()
. Este enfoque es particularmente útil cuando se trabaja con objetos personalizados o cuando se necesita modificar objetos de manera más controlada.
El método Properties.Add()
es una forma de agregar propiedades a un objeto de PowerShell existente. Este método es parte del marco subyacente de .NET
y proporciona un enfoque de nivel más bajo en comparación con el cmdlet Add-Member
más comúnmente utilizado.
Ejemplo:
$sampleObject.psobject.Properties.Add([PSNoteProperty]::new('Size', 'Large'))
Write-Host ($sampleObject | Out-String)
En este ejemplo, creamos $sampleObject
, un objeto con propiedades predefinidas.
Nuestro objetivo era mejorarlo al agregar una nueva propiedad llamada Size
. Para este propósito, utilizamos el método .psobject.Properties.Add([PSNoteProperty]::new())
.
Este método es un poco más matizado que Add-Member
. Implica crear un nuevo objeto PSNoteProperty
directamente y luego agregarlo a la colección de propiedades del objeto.
Finalmente, usando Write-Host
, mostramos el objeto actualizado para confirmar la adición de la nueva propiedad.
Salida:
Usar Select-Object
para Agregar Propiedades a Objetos en PowerShell
Otra técnica implica usar Select-Object
combinado con una tabla hash (@{}
) para agregar propiedades a objetos. Este método es particularmente útil para crear vistas personalizadas o extender objetos sin modificar el objeto original.
El método Select-Object *, @{}
se utiliza para crear un nuevo objeto extendiendo uno existente con propiedades adicionales. Este enfoque se usa comúnmente para modificaciones temporales de objetos, como para fines de visualización o al preparar datos para exportación.
Es no destructivo, lo que significa que el objeto original permanece sin cambios.
Ejemplo:
$extendedObject = $sampleObject | Select-Object *, @{
Name = 'Size'
Expression = { 'Large' }
}
Write-Host ($extendedObject | Out-String)
En este ejemplo, comenzamos con nuestro $sampleObject
y establecimos un objetivo para aumentarlo con una nueva propiedad llamada Size
. Nuestro enfoque no involucró alterar el objeto original, manteniendo su integridad.
Logramos esto al encadenar $sampleObject
a Select-Object
, instruyendo efectivamente a PowerShell a llevar todas las propiedades existentes (*
) y a introducir una nueva propiedad definida por una tabla hash.
En nuestra tabla hash, especificamos claramente el nombre de la nueva propiedad, Size
, y asignamos su valor, Large
, dentro de un bloque de expresión. Este enfoque es particularmente elegante, ya que construye un nuevo objeto, $extendedObject
, enriquecido con la propiedad adicional.
Salida:
Conclusión
A lo largo de este artículo, hemos recorrido varias metodologías para agregar propiedades a objetos en PowerShell, cada una con sus ventajas y aplicaciones únicas. Comenzando con la creación de objetos personalizados utilizando tablas hash, establecimos la base para comprender las propiedades de los objetos en PowerShell.
Luego exploramos el cmdlet Add-Member
, un básico en la scripting de PowerShell para mejorar dinámicamente objetos. La exploración del método Properties.Add()
abrió una ventana a un enfoque más profundo, permitiendo una manipulación controlada de las propiedades de los objetos.
Por último, el uso de Select-Object
con una tabla hash demostró una forma no destructiva y elegante de extender objetos. Cada método, desde el más sencillo hasta el más complejo, cumple un propósito único, ofreciendo a los usuarios de PowerShell un rico conjunto de herramientas para personalizar y gestionar objetos en sus scripts.
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn