01
Création et suppression d'utilisateurs
Menu interactif · Nommage automatique · Boucle for
Concepts clés
Instructions
if / elseif
switch
Boucles
for
Nommage
Utilisateur1
Utilisateur2
…
Contraintes mot de passe
CannotChangePassword
PasswordNeverExpires
Aperçu du menu
Script PowerShell
# ───────────────────────────────────────────── # Exercice 1 – Création/Suppression d'utilisateurs # ───────────────────────────────────────────── do { Write-Host "`n===== Gestion des utilisateurs =====" Write-Host "1 - Créer des utilisateurs" Write-Host "2 - Supprimer des utilisateurs" Write-Host "3 - Quitter" $choix = Read-Host "Votre choix" if ($choix -eq "1") { # ── Option 1 : Créer des utilisateurs ── $nb = Read-Host "Combien d'utilisateurs créer ?" $mdp = ConvertTo-SecureString "P@ssword123!" -AsPlainText -Force for ($i = 1; $i -le $nb; $i++) { $nom = "Utilisateur$i" if (Get-LocalUser -Name $nom -ErrorAction SilentlyContinue) { Write-Host "[!] $nom existe déjà." -ForegroundColor Yellow } else { New-LocalUser -Name $nom -Password $mdp ` -PasswordNeverExpires -UserMayNotChangePassword Write-Host "[✓] $nom créé avec succès." -ForegroundColor Green } } } elseif ($choix -eq "2") { # ── Option 2 : Supprimer des utilisateurs ── $nb = Read-Host "Combien d'utilisateurs supprimer ?" for ($i = 1; $i -le $nb; $i++) { $nom = "Utilisateur$i" if (Get-LocalUser -Name $nom -ErrorAction SilentlyContinue) { Remove-LocalUser -Name $nom Write-Host "[✓] $nom supprimé." -ForegroundColor Green } else { Write-Host "[!] $nom introuvable." -ForegroundColor Red } } } elseif ($choix -ne "3") { Write-Host "[✗] Choix invalide." -ForegroundColor Red } } while ($choix -ne "3") Write-Host "Au revoir."
Contraintes à respecter
Utiliser une instruction
if pour gérer le choix du menu.Utiliser une boucle
for pour créer ou supprimer plusieurs utilisateurs.Les utilisateurs ne peuvent pas modifier leur mot de passe (
-UserMayNotChangePassword).Les mots de passe n'expirent jamais (
-PasswordNeverExpires).Nommage automatique : Utilisateur1, Utilisateur2, Utilisateur3…
02
Gestion de groupes
Vérification d'existence · Nommage automatique · Boucle for
Concepts clés
Instructions
if / elseif
Boucles
for
Nommage
Groupe1
Groupe2
…
Vérification
Get-LocalGroup
Aperçu du menu
Script PowerShell
# ───────────────────────────────────────────── # Exercice 2 – Création/Suppression de groupes # ───────────────────────────────────────────── do { Write-Host "`n===== Gestion des groupes =====" Write-Host "1 - Créer des groupes" Write-Host "2 - Supprimer des groupes" Write-Host "3 - Quitter" $choix = Read-Host "Votre choix" if ($choix -eq "1") { # ── Option 1 : Créer des groupes ── $nb = Read-Host "Combien de groupes créer ?" for ($i = 1; $i -le $nb; $i++) { $nom = "Groupe$i" # Vérification avant création if (Get-LocalGroup -Name $nom -ErrorAction SilentlyContinue) { Write-Host "[!] Le groupe $nom existe déjà." -ForegroundColor Yellow } else { New-LocalGroup -Name $nom -Description "Groupe créé automatiquement" Write-Host "[✓] Groupe $nom créé avec succès." -ForegroundColor Green } } } elseif ($choix -eq "2") { # ── Option 2 : Supprimer des groupes ── $nb = Read-Host "Combien de groupes supprimer ?" for ($i = 1; $i -le $nb; $i++) { $nom = "Groupe$i" if (Get-LocalGroup -Name $nom -ErrorAction SilentlyContinue) { Remove-LocalGroup -Name $nom Write-Host "[✓] Groupe $nom supprimé." -ForegroundColor Green } else { Write-Host "[!] Groupe $nom introuvable." -ForegroundColor Red } } } elseif ($choix -ne "3") { Write-Host "[✗] Choix invalide." -ForegroundColor Red } } while ($choix -ne "3") Write-Host "Au revoir."
Contraintes à respecter
Utiliser une instruction
if pour gérer le choix du menu.Utiliser une boucle
for pour créer ou supprimer les groupes.Avant de créer un groupe, vérifier s'il existe déjà avec
Get-LocalGroup.Afficher un message si le groupe existe déjà.
Nommage automatique : Groupe1, Groupe2, Groupe3…
03
Gestion des utilisateurs et des groupes
Menu 5 options · Affectation Etudiant ↔ Classe · Vérifications complètes
Concepts clés
Instructions
if / elseif
Boucles
for
Utilisateurs
Etudiant1
Etudiant2
…
Groupes
Classe1
Classe2
…
Aperçu du menu
Script PowerShell
# ───────────────────────────────────────────── # Exercice 3 – Gestion Utilisateurs & Groupes # ───────────────────────────────────────────── do { Write-Host "`n===== Gestion Utilisateurs & Groupes =====" Write-Host "1 - Créer des utilisateurs" Write-Host "2 - Créer des groupes" Write-Host "3 - Ajouter des utilisateurs dans des groupes" Write-Host "4 - Retirer des utilisateurs des groupes" Write-Host "5 - Quitter" $choix = Read-Host "Votre choix" # ──────────────────────────────────────────── # Option 1 – Création des étudiants # ──────────────────────────────────────────── if ($choix -eq "1") { $nb = Read-Host "Combien d'utilisateurs créer ?" $mdp = ConvertTo-SecureString "P@ssword123!" -AsPlainText -Force for ($i = 1; $i -le $nb; $i++) { $nom = "Etudiant$i" if (Get-LocalUser -Name $nom -ErrorAction SilentlyContinue) { Write-Host "[!] $nom existe déjà." -ForegroundColor Yellow } else { New-LocalUser -Name $nom -Password $mdp ` -PasswordNeverExpires -UserMayNotChangePassword Write-Host "[✓] $nom créé avec succès." -ForegroundColor Green } } # ──────────────────────────────────────────── # Option 2 – Création des classes # ──────────────────────────────────────────── } elseif ($choix -eq "2") { $nb = Read-Host "Combien de groupes créer ?" for ($i = 1; $i -le $nb; $i++) { $nom = "Classe$i" if (Get-LocalGroup -Name $nom -ErrorAction SilentlyContinue) { Write-Host "[!] Le groupe $nom existe déjà." -ForegroundColor Yellow } else { New-LocalGroup -Name $nom Write-Host "[✓] Groupe $nom créé." -ForegroundColor Green } } # ──────────────────────────────────────────── # Option 3 – Ajout Etudiant → Classe # ──────────────────────────────────────────── } elseif ($choix -eq "3") { $nb = Read-Host "Combien de paires à ajouter (EtudiantX → ClasseX) ?" for ($i = 1; $i -le $nb; $i++) { $user = "Etudiant$i" $group = "Classe$i" $userOk = Get-LocalUser -Name $user -ErrorAction SilentlyContinue $groupOk = Get-LocalGroup -Name $group -ErrorAction SilentlyContinue if ($userOk -and $groupOk) { Add-LocalGroupMember -Group $group -Member $user -ErrorAction SilentlyContinue Write-Host "[✓] $user ajouté dans $group." -ForegroundColor Green } else { if (-not $userOk) { Write-Host "[✗] Utilisateur $user introuvable." -ForegroundColor Red } if (-not $groupOk) { Write-Host "[✗] Groupe $group introuvable." -ForegroundColor Red } } } # ──────────────────────────────────────────── # Option 4 – Retrait Etudiant ← Classe # ──────────────────────────────────────────── } elseif ($choix -eq "4") { $nb = Read-Host "Combien de paires à retirer (EtudiantX ← ClasseX) ?" for ($i = 1; $i -le $nb; $i++) { $user = "Etudiant$i" $group = "Classe$i" $userOk = Get-LocalUser -Name $user -ErrorAction SilentlyContinue $groupOk = Get-LocalGroup -Name $group -ErrorAction SilentlyContinue if ($userOk -and $groupOk) { Remove-LocalGroupMember -Group $group -Member $user -ErrorAction SilentlyContinue Write-Host "[✓] $user retiré de $group." -ForegroundColor Green } else { if (-not $userOk) { Write-Host "[✗] Utilisateur $user introuvable." -ForegroundColor Red } if (-not $groupOk) { Write-Host "[✗] Groupe $group introuvable." -ForegroundColor Red } } } } elseif ($choix -ne "5") { Write-Host "[✗] Choix invalide." -ForegroundColor Red } } while ($choix -ne "5") Write-Host "Au revoir."
Contraintes à respecter
Utiliser des instructions
if pour vérifier l'existence des utilisateurs et des groupes avant toute opération.Utiliser des boucles
for pour les créations, les ajouts et les suppressions.Les utilisateurs ne peuvent pas modifier leur mot de passe et les mots de passe n'expirent jamais.
Afficher un message indiquant si l'opération a réussi (vert) ou échoué (rouge).
Correspondance automatique :
Etudiant1 → Classe1, Etudiant2 → Classe2…