0% ont trouvé ce document utile (0 vote)
0 vues6 pages

TP9 Scripts PowerShell

Ce document présente un TP sur les scripts PowerShell, visant à enseigner la création et l'exécution de scripts, l'utilisation des entrées/sorties, des conditions et des boucles. Il contient des exemples pratiques et des exercices pour appliquer les concepts, tels que la gestion des entrées utilisateur, les conditions basées sur des valeurs saisies et l'utilisation de boucles pour automatiser des tâches. Les participants sont encouragés à créer des scripts lisibles et commentés pour faciliter les tests.

Transféré par

gobackto2010
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
0 vues6 pages

TP9 Scripts PowerShell

Ce document présente un TP sur les scripts PowerShell, visant à enseigner la création et l'exécution de scripts, l'utilisation des entrées/sorties, des conditions et des boucles. Il contient des exemples pratiques et des exercices pour appliquer les concepts, tels que la gestion des entrées utilisateur, les conditions basées sur des valeurs saisies et l'utilisation de boucles pour automatiser des tâches. Les participants sont encouragés à créer des scripts lisibles et commentés pour faciliter les tests.

Transféré par

gobackto2010
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

TP 9

scripts PowerShell

1. Objectifs pédagogiques du TP
 Créer et exécuter un fichier script PowerShell avec l’extension .ps1.
 Utiliser les entrées et sorties : afficher un message, lire une valeur et stocker cette valeur dans une
variable.
 Écrire des conditions simples avec if, elseif et else.
 Utiliser les boucles for, foreach et while pour répéter un traitement.
 Produire des scripts lisibles, commentés et faciles à tester.

2. Préparation de l’environnement
Créer un dossier de travail : par exemple C:\TP_PowerShell. Dans ce dossier, créer un fichier par
exercice.
# Créer le dossier de travail
New-Item -ItemType Directory -Path "C:\TP_PowerShell" -Force

# Se déplacer dans le dossier


Set-Location "C:\TP_PowerShell"
Important : si Windows bloque l’exécution des scripts, utiliser temporairement la commande suivante dans
la même session PowerShell :
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass

Principe : Cette commande ne change pas la sécurité de Windows définitivement. Elle autorise seulement l’exécution des
scripts dans la fenêtre PowerShell actuelle.

3. Méthode de travail conseillée


1. Lire le rappel de syntaxe avant de commencer l’exercice.
2. Recopier et exécuter l’exemple détaillé pour comprendre le fonctionnement.
3. Modifier l’exemple avec vos propres valeurs pour vérifier que vous avez compris.
4. Réaliser les applications demandées dans un fichier .ps1.
5. Tester le script au moins deux fois avec des valeurs différentes.
Convention utilisée dans ce TP : Les lignes qui commencent par # sont des commentaires. Elles expliquent le code et
ne sont pas exécutées par PowerShell.

Exercice 1 - Entrée / sortie en PowerShell


But : apprendre à afficher un message, demander une information à l’utilisateur et utiliser cette information
dans un calcul ou une phrase.

1.1 Rappel de syntaxe


Besoin Syntaxe PowerShell Explication simple
Afficher un texte Write-Host "Bonjour" Affiche un message à l’écran.
Lire une valeur $nom = Read-Host "Votre nom" Demande une saisie et la stocke dans
une variable.
Créer une variable $age = 20 Une variable commence toujours par le
signe $.
Convertir en nombre $age = [int](Read-Host "Age") Read-Host lit du texte. [int] transforme le
texte en nombre entier.

1/6
Afficher une variable Write-Host "Bonjour $nom" PowerShell remplace $nom par sa
valeur.

À retenir : Read-Host retourne toujours du texte. Pour faire un calcul, convertir la valeur avec [int] ou [double].

1.2 Exemple détaillé : calculer l’âge dans 5 ans


Situation concrète : un script demande le nom et l’âge d’un utilisateur, puis affiche son âge dans 5 ans.
# Exemple : demander le nom et l'âge puis calculer l'âge dans 5 ans

$nom = Read-Host "Entrez votre nom"


$age = [int](Read-Host "Entrez votre age")

$ageDans5Ans = $age + 5

Write-Host "Bonjour $nom"


Write-Host "Dans 5 ans, vous aurez $ageDans5Ans ans."

Explication ligne par ligne :


 $nom reçoit le texte saisi par l’utilisateur.
 $age reçoit l’âge, mais on le convertit en entier avec [int] pour pouvoir faire un calcul.
 $ageDans5Ans contient le résultat du calcul $age + 5.
 Write-Host affiche le message final avec les valeurs des variables.
Exemple d’exécution attendu :
Entrez votre nom: Sara
Entrez votre age: 19
Bonjour Sara
Dans 5 ans, vous aurez 24 ans.

1.3 Application directe 1 : fiche étudiant


Créer un script nommé Ex1_EntreeSortie.ps1 qui demande :
 le prénom de l’étudiant ;
 son groupe ;
 sa spécialité.
Le script doit afficher une phrase complète, par exemple :
Bonjour Yassine, vous etes inscrit dans le groupe ID4 en specialite Cybersecurite.

Contraintes :
 utiliser au moins trois variables ;
 utiliser Read-Host pour chaque information ;
 utiliser Write-Host pour afficher le résultat final.

1.4 Application directe 2 : calcul simple de facture


Créer un script qui demande le prix d’un produit et la quantité achetée. Le script calcule puis affiche le total
à payer.
Exemple attendu :
Prix unitaire: 120
Quantite: 3
Total a payer: 360 DH

Indice : Le prix et la quantité doivent être convertis en nombres : [double] pour le prix et [int] pour la quantité.

2/6
Exercice 2 - Les conditions
But : apprendre à écrire un script qui prend une décision selon une valeur saisie par l’utilisateur.

2.1 Rappel de syntaxe


La condition permet d’exécuter un bloc de code seulement si un test est vrai.
if (condition) {
# instructions si la condition est vraie
}
elseif (autre_condition) {
# instructions si la deuxième condition est vraie
}
else {
# instructions si aucune condition n'est vraie
}

Opérateur Signification Exemple


-eq égal à $age -eq 18
-ne différent de $role -ne "admin"
-gt plus grand que $note -gt 10
-ge plus grand ou égal $note -ge 10
-lt plus petit que $age -lt 18
-le plus petit ou égal $stock -le 5
-and ET logique $age -ge 18 -and $age -le 60
-or OU logique $choix -eq "O" -or $choix -eq "o"

2.2 Exemple détaillé : vérifier si un étudiant est admis


Situation concrète : un script demande une note sur 20 et affiche la décision : admis, rattrapage ou non
admis.
# Exemple : décision selon une note

$note = [double](Read-Host "Entrez la note sur 20")

if ($note -ge 10) {


Write-Host "Decision: Admis"
}
elseif ($note -ge 8) {
Write-Host "Decision: Rattrapage"
}
else {
Write-Host "Decision: Non admis"
}

Explication pédagogique :
 Si la note est supérieure ou égale à 10, la première condition est vraie : le script affiche Admis.
 Si la première condition est fausse mais que la note est supérieure ou égale à 8, le script affiche
Rattrapage.
 Si aucune condition n’est vraie, le script passe dans else et affiche Non admis.
Attention : L’ordre des conditions est important. On teste d’abord la note la plus élevée, puis les cas moins favorables.

2.3 Application directe 1 : catégorie d’âge


Créer un script nommé Ex2_Conditions.ps1 qui demande l’âge d’une personne puis affiche sa catégorie :
 moins de 12 ans : Enfant ;
 de 12 à 17 ans : Adolescent ;
 de 18 à 59 ans : Adulte ;

3/6
 60 ans ou plus : Senior.
Exemple attendu :
Entrez votre age: 16
Categorie: Adolescent

2.4 Application directe 2 : contrôle d’espace disque


Créer un script qui demande le pourcentage d’espace disque libre et affiche un état simple :
 si l’espace libre est inférieur à 10 %, afficher : Critique ;
 si l’espace libre est entre 10 % et 20 %, afficher : Attention ;
 sinon, afficher : OK.
Exemple attendu :
Espace disque libre (%): 8
Etat du disque: Critique

Lien avec l’administration système : Un administrateur peut automatiser ce type de contrôle pour détecter rapidement
les postes ou serveurs qui manquent d’espace disque.

Exercice 3 - Les boucles


But : apprendre à répéter automatiquement une instruction sans recopier plusieurs fois le même code.

3.1 Rappel de syntaxe


Une boucle est utile lorsqu’une action doit être répétée plusieurs fois : afficher une liste, tester plusieurs
postes, traiter plusieurs fichiers, etc.
Boucle Quand l’utiliser ? Exemple simple
for Quand on connaît le nombre de for ($i=1; $i -le 5; $i++) { ... }
répétitions.
foreach Quand on parcourt une liste d’éléments. foreach ($nom in $liste) { ... }
while Quand on répète tant qu’une condition while ($choix -ne "q") { ... }
est vraie.

3.2 Exemple détaillé : table de multiplication avec for


Situation concrète : le script demande un nombre et affiche sa table de multiplication de 1 à 10.
# Exemple : table de multiplication

$nombre = [int](Read-Host "Entrez un nombre")

for ($i = 1; $i -le 10; $i++) {


$resultat = $nombre * $i
Write-Host "$nombre x $i = $resultat"
}

Explication ligne par ligne :


 $nombre contient le nombre choisi par l’utilisateur.
 La boucle for commence avec $i = 1.
 La condition $i -le 10 signifie : continuer tant que $i est inférieur ou égal à 10.
 Après chaque tour, $i++ augmente $i de 1.
 À chaque tour, le script calcule puis affiche une ligne de la table.
Exemple d’exécution attendu :
Entrez un nombre: 5
5 x 1 = 5
5 x 2 = 10

4/6
5 x 3 = 15
...
5 x 10 = 50

3.3 Exemple complémentaire : parcourir une liste avec foreach


Situation concrète : afficher une action à réaliser sur plusieurs services Windows.
# Exemple : parcourir une liste de services

$services = @("Spooler", "WinRM", "wuauserv")

foreach ($service in $services) {


Write-Host "Verification du service: $service"
}

Comprendre @() : @() permet de créer une liste. foreach prend chaque élément de la liste, un par un, et exécute le bloc
de code.

3.4 Application directe 1 : nombres pairs


Créer un script nommé Ex3_Boucles.ps1 qui affiche tous les nombres pairs de 2 à 20.
Résultat attendu :
2
4
6
8
10
12
14
16
18
20

Contraintes :
 utiliser une boucle for ;
 ne pas écrire manuellement les dix nombres ;
 utiliser Write-Host pour afficher chaque nombre.

3.5 Application directe 2 : menu simple avec while


Créer un script qui affiche un menu jusqu’à ce que l’utilisateur tape Q pour quitter.
Menu demandé :
1 - Afficher Bonjour
2 - Afficher la date
Q - Quitter

Fonctionnement attendu :
 si l’utilisateur tape 1, le script affiche Bonjour ;
 si l’utilisateur tape 2, le script affiche la date avec Get-Date ;
 si l’utilisateur tape Q ou q, le script se termine ;
 sinon, le script affiche Choix invalide.
Indice : Utiliser while ($choix -ne "Q" -and $choix -ne "q") pour répéter le menu.

4. Mini-synthèse : choisir la bonne structure


Pour écrire un script simple, on peut suivre cette logique :

5/6
Question à se poser Structure à utiliser Exemple concret
Dois-je demander une information ? Read-Host Demander le nom, l’âge, une note, une
quantité.
Dois-je afficher un résultat ? Write-Host Afficher un message, un calcul, un état.
Dois-je prendre une décision ? if / elseif / else Afficher Admis ou Non admis selon la
note.
Dois-je répéter un nombre connu de for Afficher une table de multiplication de 1 à
fois ? 10.
Dois-je parcourir une liste ? foreach Vérifier plusieurs services ou plusieurs
noms de fichiers.
Dois-je répéter jusqu’à une action ? while Afficher un menu jusqu’à ce que
l’utilisateur quitte.

6/6

Vous aimerez peut-être aussi