R18 - Examen 2
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
Toute autre documentation est interdite (OneNote, GitHub, le code du TP, etc.)
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
Remise du TP2
Vous avez jusqu'à la fin de la journée pour remettre votre TP2 final sur GitHub.