-
01 - Introduction à Powershell
-
02 - Commandes de base Powershell
-
03 - Navigation dans le système
-
04 - Gestion des utilisateurs locaux
-
05 - Les bases du scripting Powerhshell
-
06 - Gestion des utilisateurs Active Directory
-
07 - Automatisation des taches de gestion utilisateurs
-
08 - Automatisation des processus système
-
09 - Script de maintenance serveur
-
10 - Gestion avancée en PowerShell
-
11 - Formater les sorties des scripts
-
12 - Gestion des fichiers de log
-
13 - Etude de cas - Automatisation de taches courantes
-
14 - Optimisation des scripts et bonnes pratiques
-
16 - Algorithmie et Powershell
-
QCM de fin de parcours
14.3 Travaux pratiques
3. Travaux pratiques : Améliorer un script existant
Énoncé du projet :
Objectif : Améliorez le script suivant en ajoutant :
- Documentation complète (bloc .SYNOPSIS, .DESCRIPTION, .EXAMPLE).
- Gestion des erreurs (try/catch).
- Logging avancé (niveaux INFO, WARNING, ERROR).
- Paramètres flexibles :
- Chemin du fichier CSV.
- Mot de passe par défaut.
- Niveau de log.
- Modularité :
- Séparer la logique dans des fonctions.
- Utiliser un module de logging.
Script de base :
$users = Import-Csv -Path "C:\Temp\Users.csv"
foreach ($user in $users) {
New-ADUser -Name "$($user.Prenom) $($user.Nom)" -SamAccountName $user.Identifiant
}
Corrigé :
Structure des fichiers :
Project/ ├── Modules/ │ ├── LoggingModule.psm1 │ └── UserManagement.psm1 └── Main.ps1
1. LoggingModule.psm1 (voir section 2.2.1).
2. UserManagement.psm1 (voir section 2.4).
3. Main.ps1 :
<#
.SYNOPSIS
Script principal pour la gestion des utilisateurs Active Directory.
.DESCRIPTION
Ce script utilise les modules LoggingModule et UserManagement
pour créer des utilisateurs AD à partir d'un fichier CSV.
.PARAMETER CsvPath
Chemin vers le fichier CSV contenant les utilisateurs.
.PARAMETER DefaultPassword
Mot de passe par défaut pour les nouveaux utilisateurs.
.PARAMETER LogLevel
Niveau de détail des logs (INFO, WARNING, ERROR).
.EXAMPLE
.\Main.ps1 -CsvPath "C:\Temp\Users.csv" -DefaultPassword "MotDePasse123!" -LogLevel "INFO"
#>
param (
[Parameter(Mandatory=$true)]
[ValidateScript({ Test-Path -Path $_ -PathType Leaf })]
[string]$CsvPath,
[string]$DefaultPassword = "MotDePasse123!",
[ValidateSet("INFO", "WARNING", "ERROR")]
[string]$LogLevel = "INFO"
)
# Importer les modules
Import-Module .\Modules\LoggingModule.psm1 -Force
Import-Module .\Modules\UserManagement.psm1 -Force
# Exécuter la création des utilisateurs
New-ADUserFromCsv -CsvPath $CsvPath -DefaultPassword $DefaultPassword
Explications détaillées :
- Documentation :
- Chaque script et fonction a un bloc de commentaires complet.
- Exemples d’utilisation pour faciliter la prise en main.
- Modularité :
- LoggingModule.psm1 : Gère les logs de manière centralisée.
- UserManagement.psm1 : Contient la logique métier (création d’utilisateurs).
- Main.ps1 : Point d’entrée du script, appelle les modules.
- Gestion des erreurs :
- try/catch dans chaque fonction pour capturer les erreurs.
- Logs détaillés pour le débogage.
- Paramètres flexibles :
- CsvPath : Chemin personnalisable du fichier CSV.
- DefaultPassword : Mot de passe configurable.
- LogLevel : Contrôle le niveau de détail des logs.
- Réutilisabilité :
- Les modules peuvent être réutilisés dans d’autres scripts.
- Facile à maintenir : Chaque composant est isolé.
Les commentaires ne sont pas activés sur ce cours.