5. Apprenez à utiliser des variables
1) Qu’est-ce qu’une variable ?
Une variable est un conteneur qui permet de stocker une information pour la réutiliser plus tard.
Une variable commence par $ et peut contenir un nombre, du texte, une liste, des objets.
2) Stocker le résultat d’une commande
$services = Get-Service
# Rien ne s’affiche, mais les données sont stockées
$services
3) Filtrer une liste stockée
$servicesArretes = $services | Where-Object {$_.Status -eq 'Stopped'}
$servicesArretes
4) Compter des éléments
$nb = $services.Count
"Nombre de services : $nb"
5) Accéder à une propriété d’objet
$services[0].Name
$services[0].Status
Types de variables : notions essentielles
Dans la plupart des langages, une variable possède un type qui décrit la nature de la donnée stockée. Le type influence les opérations possibles (addition, comparaison, concaténation, etc.) et la façon dont la valeur est interprétée.
Entier (integer)
Nombre entier (positif ou négatif).
10
-3
Décimal (float / double)
Nombre avec une partie décimale.
3.14
0.5
Booléen (boolean)
Valeur logique : vrai ou faux.
true
false
Chaîne (string)
Texte (suite de caractères).
"Bonjour"
"Serveur-01"
Tableau / Liste
Collection de valeurs (liste d'éléments).
[1, 2, 3]
["a", "b", "c"]
Objet
Structure avec des propriétés (très fréquent en administration système).
utilisateur.nom
machine.ip
Typage en PowerShell : pas obligatoire, mais toujours présent
PowerShell utilise un typage dynamique : le type est généralement déduit automatiquement à partir de la valeur affectée. Vous n'êtes donc pas obligé de déclarer un type.
$x = 10 # entier
$x = "Bonjour" # chaîne
$x = $true # booléen
Même si vous ne déclarez rien, PowerShell manipule toujours des objets typés.
Vous pouvez vérifier le type d'une valeur avec .GetType().
$age = 30
$age.GetType()
$nom = "Jean"
$nom.GetType()
Quand la fiabilité est critique (scripts d'automatisation, planification), vous pouvez typer explicitement :
[int]$age = 30
[bool]$actif = $true
[string]$nom = "Jean"
6) Variables : exemples utiles en administration
Stocker un chemin
$path = "C:\Temp"
Test-Path $path
Construire un chemin propre
$base = "C:\Temp"
$file = Join-Path $base "rapport.txt"
$file
Combiner texte + variable
$machine = $env:COMPUTERNAME
"Nom de la machine : $machine"
Stocker une collection (liste)
$ports = 80, 443, 3389
$ports
$ports.Count
"Valeur : $x".
Exercices (corrigés masqués)
Cherchez d’abord. Ouvrez ensuite le corrigé pour comparer.
Exercice 1 — Stocker et filtrer
Stockez la liste des services dans une variable, puis affichez uniquement les services arrêtés.
Voir un corrigé possible
$services = Get-Service
$services | Where-Object { $_.Status -eq "Stopped" }
Exercice 2 — Chemin réutilisable
Stockez un dossier de travail dans $work puis construisez le chemin d’un fichier report.txt.
Voir un corrigé possible
$work = "C:\Temp"
$report = Join-Path $work "report.txt"
$report
Exercice 3 — Type implicite
Créez une variable $x qui contient successivement un nombre, une chaîne, puis un booléen, et vérifiez le type avec .GetType().
Voir un corrigé possible
$x = 10
$x.GetType()
$x = "Bonjour"
$x.GetType()
$x = $true
$x.GetType()