- 1-1. Qu'est-ce que PowerShell ?
- 1-2. PowerShell vs Bash / CMD / VBScript
- 1-3. Historique et versions (Windows PowerShell, PowerShell 7+)
- 1-4. Installation (Windows, Linux, macOS)
- 1-5. Découverte de la console PowerShell et VS Code
- 1-6. Utilisation de l'aide intégrée (
Get-Help,Get-Command,Get-Member) - Exercices
- 2-1. Fichier de profil (
$PROFILE) - 2-2. Customisation du prompt (oh-my-posh, PSReadLine)
- 2-3. Historique de commandes et raccourcis clavier
- 2-4. Modules utiles (PSReadLine, posh-git, Terminal-Icons, etc.)
- 2-5. Découverte de la PowerShell Gallery
- Exercices
- 3-1. Cmdlets, alias et pipeline
- 3-2. Variables, typage, tableaux, hashtables
- 3-3. Opérateurs (logiques, arithmétiques, comparaison)
- 3-4. Structures de contrôle (
if,switch,for,foreach,while) - 3-5. Expressions régulières et filtrage
- 3-6. Scripting : premiers scripts
.ps1 - Exercices
- 4-1. Le modèle objet PowerShell
- 4-2. Manipulation des objets (
Select-Object,Where-Object,Sort-Object) - 4-3. Création d'objets personnalisés (
[PSCustomObject]) - 4-4. Groupement, agrégation (
Group-Object,Measure-Object) - 4-5. Export de données (CSV, JSON, XML)
- Exercices
- 5-1. Fichiers, dossiers, chemins (
Get-Item,Get-ChildItem, etc.) - 5-2. Lecture/écriture de fichiers (TXT, CSV, JSON, XML)
- 5-3. Gestion des permissions NTFS
- 5-4. Compression, archivage et extraction
- 5-5. Dates et temps (
Get-Date, manipulation des TimeSpan) - Outils
- 6-1. Création de fonctions et paramètres
- 6-2. Validation des paramètres (
[ValidateNotNullOrEmpty], etc.) - 6-3. Scripts, modules (
.ps1,.psm1), manifestes - 6-4. Portée des variables et scopes
- 6-5. Meilleures pratiques de structuration et nommage
- Exercices
- 7-1.
try/catch/finally,throw,Write-Error - 7-2.
$?,$LASTEXITCODE,$ErrorActionPreference - 7-3. Débogage avec VS Code (
Set-PSBreakpoint, etc.) - 7-4. Journaux d'exécution (
Start-Transcript) - 7-5. Gestion des exceptions réseau, fichiers, API
- 8-1. Jobs (
Start-Job,Receive-Job,Remove-Job) - 8-2. Runspaces & ForEach-Object -Parallel (PowerShell 7+)
- 8-3. Planification via le Planificateur de tâches Windows
- 8-4. Création de services de fond en PowerShell
- 8-5. Monitoring de scripts longue durée
- Exercices
- 9-1. Services, processus, registre, événements
- 9-2. WMI vs CIM (
Get-CimInstance,Invoke-CimMethod) - 9-3. Gestion des disques, partitions, volumes
- 9-4. Interrogation du matériel (RAM, CPU, etc.)
- 9-5. Gestion des utilisateurs et groupes locaux
- Exercices
- 10-1. Module RSAT et importation (
Import-Module ActiveDirectory) - 10-2. Requêtes sur les utilisateurs, groupes, ordinateurs
- 10-3. Création, modification, suppression d'objets AD
- 10-4. Utilisation de filtres LDAP
- 10-5. Audit de l'environnement AD (dernière connexion, comptes inactifs)
- Exercices
- 11-1. Cmdlets réseau :
Test-Connection,Test-NetConnection,Resolve-DnsName - 11-2. Découverte réseau (scan, ports, ping, IP)
- 11-3. Firewall, pare-feu, et règles Windows Defender
- 11-4. Gestion des certificats
- 11-5. Sécurité des scripts : droits, exécution, sessions à privilèges
- Exercices
- 12-1.
Invoke-WebRequestvsInvoke-RestMethod - 12-2. Authentification (Basic, Bearer, Token)
- 12-3. Consommer une API REST, envoyer du JSON
- 12-4. Appels vers GitHub, Azure, Teams, etc.
- 12-5. Introduction à PowerShell + Azure / AWS / Google Cloud
- Exercices
- 13-1. Introduction à Pester (tests unitaires)
- 13-2. PowerShell + Git
- 13-3. Scripts dans les pipelines (Azure DevOps, GitHub Actions)
- 13-4. Linting et validation automatique
- 13-5. Publication de modules (PSGallery)
- Exercices
- 14-1. Profilage (
Measure-Command, Stopwatch) - 14-2. Pipeline vs Boucles
- 14-3. Techniques d'optimisation (filtrage natif, évitement de WMI)
- 14-4. Éviter les ralentissements courants
- 14-5. Chargement conditionnel de modules
- Exercices