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
}