Como Adicionar Propriedades a Objetos no PowerShell
- Use Hashtable para Criar Objetos Personalizados no PowerShell
-
Use
Add-Member
para Adicionar Propriedades a Objetos no PowerShell -
Use
Properties.Add()
para Adicionar Propriedades a Objetos no PowerShell -
Use
Select-Object
para Adicionar Propriedades a Objetos no PowerShell - Conclusão

Este artigo investiga vários métodos para adicionar propriedades a objetos no PowerShell, uma técnica essencial para usuários de PowerShell, desde iniciantes até especialistas. Começamos explorando o uso de hashtables para criar objetos personalizados, uma abordagem simples, mas poderosa.
Em seguida, apresentamos o cmdlet Add-Member
, uma ferramenta versátil para anexar dinamicamente propriedades a objetos existentes. À medida que aprofundamos, descobrimos as complexidades do método Properties.Add()
, oferecendo uma maneira mais sutil e controlada de aprimorar objetos.
Finalmente, discutimos o uso de Select-Object
em combinação com uma hashtable, um método perfeito para modificações temporárias e preservação do estado do objeto original.
Este guia abrangente visa fornecer insights práticos e exemplos para capacitar usuários de PowerShell a personalizar objetos de acordo com suas necessidades específicas.
Use Hashtable para Criar Objetos Personalizados no PowerShell
Antes de adicionar propriedades a um objeto, primeiro devemos criar um. Uma maneira de fazer isso é através de hashtables.
Para definir brevemente, hashtables são conjuntos de chaves ou pares de valores que precisamos criar e atribuir propriedades a um objeto no PowerShell. No exemplo, estamos criando uma hashtable que representa um único objeto e suas propriedades.
Uma vez que a hashtable, $sampleHashtable
, foi definida, podemos usar o acelerador de tipo PSCustomObject
para criar uma instância da classe PSCustomObject
.
Após executar o snippet de código, obteremos um objeto $sampleHashtable
do tipo PSCustomObject
com propriedades definidas no programa.
Exemplo 1:
$sampleObject = [PSCustomObject]@{
ID = 1
Shape = "Square"
Color = "Blue"
}
Como podemos ver, após criar $sampleHashtable
, poderemos referenciar cada propriedade como se fosse proveniente de um cmdlet embutido do PowerShell, como Get-Service
.
Use Add-Member
para Adicionar Propriedades a Objetos no PowerShell
A versatilidade do PowerShell como uma linguagem de script se deve parcialmente à sua capacidade de manipular objetos dinamicamente. Um exemplo primordial dessa capacidade é o cmdlet Add-Member
, que permite aos usuários adicionar propriedades e métodos a objetos durante a execução.
O cmdlet Add-Member
é uma ferramenta essencial no PowerShell para adicionar dinamicamente membros, como propriedades, métodos ou eventos, a uma instância de um objeto. Este recurso é especialmente útil para personalizar objetos para atender a necessidades específicas ou para aumentar estruturas de dados com informações adicionais.
Exemplo:
$sampleObject | Add-Member -MemberType NoteProperty -Name 'Size' -Value 'Large'
Write-Output $sampleObject
Neste exemplo, começamos criando $sampleObject
, um objeto PowerShell personalizado com propriedades predefinidas. Nosso objetivo era aprimorar este objeto adicionando uma nova propriedade.
Usando o cmdlet Add-Member
, anexamos uma NoteProperty
chamada Size
com o valor Large
a $sampleObject
. Este processo demonstra o poder do PowerShell em estender dinamicamente objetos.
A NoteProperty
foi escolhida porque é adequada para valores estáticos, que era nossa exigência.
Por fim, usamos Write-Host
para imprimir o objeto atualizado, demonstrando efetivamente a adição da nova propriedade.
Saída:
Use Properties.Add()
para Adicionar Propriedades a Objetos no PowerShell
Um método menos conhecido, mas poderoso, para aprimorar objetos é usar o método Properties.Add()
. Esta abordagem é particularmente útil ao trabalhar com objetos personalizados ou quando você precisa modificar objetos de uma maneira mais controlada.
O método Properties.Add()
é uma maneira de adicionar propriedades a um objeto PowerShell existente. Este método faz parte da estrutura subjacente do .NET
e fornece uma abordagem de nível mais baixo em comparação com o cmdlet Add-Member
, mais comumente usado.
Exemplo:
$sampleObject.psobject.Properties.Add([PSNoteProperty]::new('Size', 'Large'))
Write-Host ($sampleObject | Out-String)
Neste exemplo, criamos $sampleObject
, um objeto com propriedades predefinidas.
Nosso objetivo era aprimorá-lo adicionando uma nova propriedade chamada Size
. Para este propósito, utilizamos o método .psobject.Properties.Add([PSNoteProperty]::new())
.
Este método é um pouco mais sutil do que Add-Member
. Envolve criar um novo objeto PSNoteProperty
diretamente e, em seguida, adicioná-lo à coleção de propriedades do objeto.
Por fim, usando Write-Host
, exibimos o objeto atualizado para confirmar a adição da nova propriedade.
Saída:
Use Select-Object
para Adicionar Propriedades a Objetos no PowerShell
Outra técnica envolve usar Select-Object
combinado com uma hashtable (@{}
) para adicionar propriedades a objetos. Este método é particularmente útil para criar visualizações personalizadas ou estender objetos sem modificar o objeto original.
O método Select-Object *, @{}
é usado para criar um novo objeto ao estender um existente com propriedades adicionais. Esta abordagem é comumente usada para modificações temporárias de objetos, como para fins de exibição ou ao preparar dados para exportação.
É não destrutivo, significando que o objeto original permanece inalterado.
Exemplo:
$extendedObject = $sampleObject | Select-Object *, @{
Name = 'Size'
Expression = { 'Large' }
}
Write-Host ($extendedObject | Out-String)
Neste exemplo, começamos com nosso $sampleObject
e definimos um objetivo de aumentá-lo com uma nova propriedade chamada Size
. Nossa abordagem não envolveu alterar o objeto original, mantendo sua integridade.
Conseguimos isso canalizando $sampleObject
para Select-Object
, orientando efetivamente o PowerShell a levar todas as propriedades existentes (*
) e introduzir uma nova propriedade definida por uma hashtable.
Em nossa hashtable, especificamos claramente o nome da nova propriedade, Size
, e atribuímos seu valor, Large
, dentro de um bloco de expressão. Esta abordagem é particularmente elegante, pois constrói um novo objeto, $extendedObject
, enriquecido com a propriedade adicional.
Saída:
Conclusão
Ao longo deste artigo, percorremos várias metodologias para adicionar propriedades a objetos no PowerShell, cada uma com suas vantagens e aplicações únicas. Começando pela criação de objetos personalizados usando hashtables, lançamos as bases para entender as propriedades de objetos no PowerShell.
Em seguida, exploramos o cmdlet Add-Member
, um pilar na script do PowerShell para aprimorar objetos dinamicamente. A exploração do método Properties.Add()
abriu uma janela para uma abordagem mais aprofundada, permitindo uma manipulação controlada das propriedades do objeto.
Por último, o uso de Select-Object
com uma hashtable demonstrou uma maneira não destrutiva e elegante de estender objetos. Cada método, do mais simples ao mais complexo, serve a um propósito único, oferecendo aos usuários do PowerShell um rico conjunto de ferramentas para personalizar e gerenciar objetos em seus scripts.
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn