R16 - Examen de mi-session
Mardi 28 octobre 2025
Cet examen compte pour 15% de la note finale du cours (soit 30% du seuil des examens).
Contexte de réalisation
Vous avez 2 heures pour le terminer. (Si vous avez droit à des accomodements du CSA, veuillez en parler au prof avant l'examen).
Ce qui est permis pendant l'examen:
- Une feuille de notes personnelles 8½x11 manuscrite recto-verso
- L'accès au site du cours
- Les fichiers PowerPoint fournis par le professeur
- Les terminaux PowerShell et Windows PowerShell
- Visual Studio Code ainsi que le débogueur
Toute autre documentation est interdite (OneNote, GitHub, le code du TP, etc.)
Contrairement à l'examen formatif, le professeur ne pourra pas vous aider. Il pourra toutefois apporter des précisions sur les questions.
Conseils pour la révision
Pour vous permettre de réussir l'examen, vous devez être à l'aise avec les concepts suivants:
- Le format de fichier d'un script PowerShell (.PS1)
- Les conditions d'exécution d'un script:
- Stratégie d'exécution (ExecutionPolicy)
- Fichiers bloqués (ZoneIdentifier) et la commande
Unblock-File
- L'exécution de scripts
- Par l'explorateur de fichiers ou le bureau
- Par la console PowerShell
- Par l'invite de commande classique avec l'interpréteur
powershell.exe
- Les structures de contrôle et l'algorithmie
- Les structures de sélection (if..elseif..else, switch)
- Les structures de répétition (while, do, for, foreach, ForEach-Object)
- Les fonctions
- La différence entre la déclaration d'une fonction et l'appel d'une fonction
- Sortie dans le pipeline
- L'instruction Return
- Les paramètres
- Paramètres d'un script et paramètres d'une fonction
- Déclaration de paramètres avec le bloc
Param() - Validation des paramètres (
ValidateSet,ValidateLength,ValidateScript, etc.) - Paramètres obligatoires
- Paramètres booléens de type
[Switch] - Passage d'un tableau en paramètre
- Passage d'un paramètre à l'entrée du pipeline
- Les fichiers
- Lecture et écriture de fichiers texte
- Lecture et écriture de fichiers CSV
- Journalisation (logging)
- La gestion des erreurs
- Actions en cas d'erreur (Stop, Continue, SilentlyContinue...)
- Paramètre
ErrorAction - Variable
$ErrorActionPreference - Structures Try/Catch
- Code de retour des commandes classiques
- Comptes et groupes locaux (commandes
LocalUser,LocalGroup,LocalGroupMember) - Domaine Active Directory
- Gestion des utilisateurs et groupes (commandes
ADUser,ADGroup,ADGroupMember) - Gestion des unités d'organisation (commandes
ADOrganizationalUnit) - Informations sur le domaine (
Get-ADDomain,Get-ADForest,Get-ADRootDSE)
- Gestion des utilisateurs et groupes (commandes
- Splatting
- Bonnes pratiques de scripting
- Éviter les alias et les noms de paramètres
- Commenter son code
- Indenter son code