Comment ajouter des propriétés aux objets dans PowerShell

  1. Utiliser les tables de hachage pour créer des objets personnalisés dans PowerShell
  2. Utiliser Add-Member pour ajouter des propriétés aux objets dans PowerShell
  3. Utiliser Properties.Add() pour ajouter des propriétés aux objets dans PowerShell
  4. Utiliser Select-Object pour ajouter des propriétés aux objets dans PowerShell
  5. Conclusion
Comment ajouter des propriétés aux objets dans PowerShell

Cet article se penche sur diverses méthodes pour ajouter des propriétés aux objets dans PowerShell, une technique essentielle pour les utilisateurs de PowerShell allant des débutants aux experts. Nous commençons par explorer l’utilisation des tables de hachage pour créer des objets personnalisés, une approche simple mais puissante.

Pour cela, nous présentons le cmdlet Add-Member, un outil polyvalent permettant d’ajouter dynamiquement des propriétés aux objets existants. En approfondissant, nous découvrons les subtilités de la méthode Properties.Add(), qui offre une manière plus nuancée et contrôlée d’améliorer les objets.

Enfin, nous discutons de l’utilisation de Select-Object en combinaison avec une table de hachage, une méthode parfaite pour les modifications temporaires et la préservation de l’état de l’objet d’origine.

Ce guide complet vise à fournir des perspectives pratiques et des exemples pour permettre aux utilisateurs de PowerShell d’adapter les objets à leurs besoins spécifiques.

Utiliser les tables de hachage pour créer des objets personnalisés dans PowerShell

Avant d’ajouter des propriétés à un objet, nous devons d’abord en créer un. Une façon de le faire est par le biais des tables de hachage.

Pour définir brièvement, les tables de hachage sont des ensembles de paires clé-valeur dont nous avons besoin pour créer et assigner les propriétés d’un objet dans PowerShell. Dans l’exemple, nous créons une table de hachage qui représente un seul objet et ses propriétés.

Une fois que la table de hachage, $sampleHashtable, a été définie, nous pouvons ensuite utiliser l’accélérateur de type PSCustomObject pour créer une instance de la classe PSCustomObject.

Après avoir exécuté l’extrait de code, nous obtiendrons un objet $sampleHashtable de type PSCustomObject avec des propriétés définies dans le programme.

Exemple 1 :

$sampleObject = [PSCustomObject]@{
    ID    = 1
    Shape = "Square"
    Color = "Blue"
}

Comme nous pouvons le voir, après avoir créé $sampleHashtable, nous pourrons référencer chaque propriété comme si elle provenait d’un cmdlet PowerShell intégré tel que Get-Service.

Utiliser Add-Member pour ajouter des propriétés aux objets dans PowerShell

La polyvalence de PowerShell en tant que langage de script est en partie due à sa capacité à manipuler les objets de manière dynamique. Un exemple frappant de cette capacité est le cmdlet Add-Member, qui permet aux utilisateurs d’ajouter des propriétés et des méthodes aux objets à l’exécution.

Le cmdlet Add-Member est un outil essentiel dans PowerShell pour ajouter dynamiquement des membres, tels que des propriétés, des méthodes ou des événements, à une instance d’un objet. Cette fonctionnalité est particulièrement utile pour personnaliser des objets afin de répondre à des besoins spécifiques ou pour enrichir des structures de données avec des informations supplémentaires.

Exemple :

$sampleObject | Add-Member -MemberType NoteProperty -Name 'Size' -Value 'Large'
Write-Output $sampleObject

Dans cet exemple, nous avons commencé par créer $sampleObject, un objet PowerShell personnalisé avec des propriétés prédéfinies. Notre objectif était d’améliorer cet objet en ajoutant une nouvelle propriété.

En utilisant le cmdlet Add-Member, nous avons ajouté une NoteProperty nommée Size avec la valeur Large à $sampleObject. Ce processus démontre la puissance de PowerShell pour étendre dynamiquement les objets.

NoteProperty a été choisi parce qu’il convient aux valeurs statiques, ce qui était notre exigence.

Enfin, nous avons utilisé Write-Host pour imprimer l’objet mis à jour, démontrant ainsi l’ajout de la nouvelle propriété.

Sortie :

ajouter des propriétés aux objets en utilisant powershell - sortie 1

Utiliser Properties.Add() pour ajouter des propriétés aux objets dans PowerShell

Une méthode moins connue mais puissante pour améliorer les objets est l’utilisation de la méthode Properties.Add(). Cette approche est particulièrement utile lorsque vous travaillez avec des objets personnalisés ou lorsque vous devez modifier des objets de manière plus contrôlée.

La méthode Properties.Add() est un moyen d’ajouter des propriétés à un objet PowerShell existant. Cette méthode fait partie du framework .NET sous-jacent et fournit une approche de niveau inférieur par rapport au cmdlet Add-Member plus couramment utilisé.

Exemple :

$sampleObject.psobject.Properties.Add([PSNoteProperty]::new('Size', 'Large'))
Write-Host ($sampleObject | Out-String)

Dans cet exemple, nous avons créé $sampleObject, un objet avec des propriétés prédéfinies.

Notre objectif était de l’enrichir en ajoutant une nouvelle propriété nommée Size. Pour ce faire, nous avons utilisé la méthode .psobject.Properties.Add([PSNoteProperty]::new()).

Cette méthode est un peu plus nuancée que Add-Member. Elle consiste à créer directement un nouvel objet PSNoteProperty et à l’ajouter à la collection de propriétés de l’objet.

Enfin, en utilisant Write-Host, nous affichons l’objet mis à jour pour confirmer l’ajout de la nouvelle propriété.

Sortie :

ajouter des propriétés aux objets en utilisant powershell - sortie 2

Utiliser Select-Object pour ajouter des propriétés aux objets dans PowerShell

Une autre technique consiste à utiliser Select-Object combiné avec une table de hachage (@{}) pour ajouter des propriétés aux objets. Cette méthode est particulièrement utile pour créer des vues personnalisées ou étendre des objets sans modifier l’objet d’origine.

La méthode Select-Object *, @{} est utilisée pour créer un nouvel objet en étendant un existant avec des propriétés supplémentaires. Cette approche est couramment utilisée pour des modifications temporaires d’objets, par exemple pour des buts d’affichage ou lors de la préparation de données pour exportation.

Elle est non destructrice, ce qui signifie que l’objet d’origine reste inchangé.

Exemple :

$extendedObject = $sampleObject | Select-Object *, @{
    Name       = 'Size'
    Expression = { 'Large' }
}
Write-Host ($extendedObject | Out-String)

Dans cet exemple, nous avons commencé avec notre $sampleObject et fixé un objectif pour l’augmenter avec une nouvelle propriété nommée Size. Notre approche n’impliquait pas de modification de l’objet d’origine, maintenant ainsi son intégrité.

Nous avons atteint cet objectif en envoyant $sampleObject dans Select-Object, ordonnant ainsi à PowerShell de conserver toutes les propriétés existantes (*) et d’introduire une nouvelle propriété définie par une table de hachage.

Dans notre table de hachage, nous avons clairement spécifié le nom de la nouvelle propriété, Size, et assigné sa valeur, Large, dans un bloc d’expression. Cette approche est particulièrement élégante, car elle construit un nouvel objet, $extendedObject, enrichi de la propriété supplémentaire.

Sortie :

ajouter des propriétés aux objets en utilisant powershell - sortie 3

Conclusion

Tout au long de cet article, nous avons parcouru diverses méthodologies pour ajouter des propriétés aux objets dans PowerShell, chacune avec ses avantages et applications uniques. En commençant par la création d’objets personnalisés à l’aide de tables de hachage, nous avons jeté les bases pour comprendre les propriétés des objets dans PowerShell.

Nous avons ensuite exploré le cmdlet Add-Member, un incontournable dans le script PowerShell pour améliorer dynamiquement les objets. L’exploration de la méthode Properties.Add() a ouvert une fenêtre sur une approche plus approfondie, permettant une manipulation contrôlée des propriétés des objets.

Enfin, l’utilisation de Select-Object avec une table de hachage a démontré une manière non destructive et élégante d’étendre les objets. Chaque méthode, de la plus simple à la plus complexe, sert un objectif unique, offrant aux utilisateurs de PowerShell une large boîte à outils pour personnaliser et gérer les objets dans leurs scripts.

Vous aimez nos tutoriels ? Abonnez-vous à DelftStack sur YouTube pour nous aider à créer davantage de tutoriels vidéo de haute qualité. Abonnez-vous
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

Article connexe - PowerShell Object