Créer des objets en PowerShell

Dernièrement j’ai travaillé avec PowerShell et j’avais besoin de passer beaucoup de paramètres entre des fonctions. Pour améliorer la lisibilité et la maintenabilité, j’ai donc regardé comment créer des objets en PowerShell. Je partage avec vous les 3 méthodes que j’ai rencontrées :

  • Version simple : New-Object
  • Version élaborée : New-Module –AsCustomObject
  • Version classe : Class (PowerShell v5)

New-Object

Simple et efficace New-Object crée un objet qui n’attend que d’être construit par l’ajout de membres que ce soit des propriétés ou des méthodes.

Output

On remarque bien que la méthode est exécutée à l’appel

New-Module -AsCustomObject

Cette méthode est plus élaborée et permet d’obtenir un objet plus adapté car plus paramétrable. Il est possible de préciser le type de la propriété et les fonctions sont convenablement supportées.

Si on met plusieurs objets dans un tableau, il est possible d’utiliser les si pratiques Sort, Select et Where.

Class avec PowerShell v5

PowerShell v5 introduit les classes ce qui rapproche encore plus PowerShell de C#.

Plus d’informations sur les classes de PowerShell v5 sur le blog Hey, Scripting Guy! Blog

Related Post

Changer son fond d’écran comme un geek J’aime bien personnaliser mon fond d’écran. Je n’aime pas perdre cette petite liberté. D’autant plus que chaque mois, Smashing Magazine (smashingmag...
Synchroniser une liste de contacts SharePoint dans... Les listes de contacts SharePoint permettent à une équipe de gérer et partager un ensemble de contact de manière autonome. Vous utilisez la liste comm...
Exécuter rapidement plusieurs opérations CRUD dans... La création d’un élément dans une liste SharePoint avec la méthode Add() est rapide. Répétée des centaines de fois, l’opération devient très longue. L...
Tableaux et Hashmap en PowerShell Dans un post précédent nous avons abordé la création d’objet en PowerShell, ajourd’hui nous parlons des structures de données plus simples avec les ta...

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *