Les Objets en PowerShell

Introduction aux Objets

Dans PowerShell, tout est considéré comme un objet. Un objet peut être défini comme une combinaison de variables et de fonctions. Chaque objet dispose de :

  • Propriétés : Ce sont des variables qui décrivent les caractéristiques de l'objet.
  • Méthodes : Ce sont des fonctions qui indiquent comment utiliser l'objet et quelles actions peuvent être réalisées avec lui.

Chaque objet est une instance d'un modèle nommé type ou classe.

Accéder aux Propriétés et Méthodes d'un Objet

Tous les éléments d'information relatifs à un objet sont appelés des membres. Le cmdlet Get-Member permet de dévoiler ces membres, y compris leurs propriétés et méthodes. Par exemple :

"Codecademy" | Get-Member

Propriétés d'un Objet

Les propriétés, également appelées attributs, sont les caractéristiques d'un objet. Pour obtenir uniquement les propriétés d'un objet, on peut utiliser le paramètre MemberType avec Get-Member. Prenons l'exemple d'un objet de type String :

$my_string = "Codecademy"
$my_string | Get-Member -MemberType Property
# Affiche toutes les propriétés de l'objet String

# TypeName: System.String
# Name   MemberType Definition
# ----   ---------- ----------
# Length Property   int Length {get;}

L'objet de type String possède une propriété appelée Length, qui représente le nombre de caractères dans la chaîne.

Méthodes d'un Objet

Les méthodes décrivent les actions que peut effectuer un objet. Par exemple, l'une des méthodes d'un objet String est Contains(). Cette méthode retourne True si la chaîne contient un certain sous-ensemble, sinon elle retourne False. Voici comment l'utiliser :

$my_string.Contains("Code")
# Retourne True

Pour lister toutes les méthodes d'un objet, on peut modifier le paramètre MemberType :

$my_string | Get-Member -MemberType Method

Création d'un Objet Personnalisé

PowerShell permet de définir des objets personnalisés. Pour créer un objet appelé dog, on utilise le cmdlet New-Object avec le type de nom PSCustomObject. Par défaut, ces nouveaux objets n'ont aucune propriété, mais quatre méthodes.

$dog = New-Object -TypeName PSCustomObject
$dog | Get-Member
# Affichera le type et les méthodes par défaut

Ajout de Propriétés

Pour ajouter des propriétés à des objets personnalisés, on utilise le cmdlet Add-Member. Il est nécessaire de spécifier un type de membre à l'aide du paramètre -MemberType. Pour simple paire clé-valeur, NoteProperty est utilisé :

$dog | Add-Member -MemberType NoteProperty -Name "DogName" -Value "Rufus"
# -Name pour spécifier le nom de la propriété, -Value pour la valeur associée

Ajout de Méthodes

L'ajout de méthodes est similaire à celui des propriétés, mais on spécifie ScriptMethod pour le paramètre MemberType. Un bloc de code encapsulé entre accolades { }, appelé ScriptBlock, est aussi requis. Par exemple :

$speak = {"Woof!"}
$dog | Add-Member -MemberType ScriptMethod -Name "speak" -Value $speak

Utilisation d'une Hashtable

Une autre méthode pour créer un objet personnalisé consiste à utiliser une Hashtable. Une Hashtable définit plusieurs paires clé-valeur qui peuvent être ajoutées facilement à un objet personnalisé. Par exemple :

$dog = [PSCustomObject]@{
    Name = "Rufus"  # Ajoute une propriété Name avec "Rufus"
    Age = 10        # Ajoute une propriété Age avec 10
}