Examen intra

Informations générales

Dates:

  • Groupe 1 (lundi matin): Lundi 27 octobre 2025
  • Groupe 2 (mercredi matin): Mercredi 29 octobre 2025

Format: Examen théorique sur Moodle (avec Safe Exam Browser). Mélange de questions à choix multiples, questions courtes, Vrai/Faux, questions longues, analyse de commandes/scripts, etc.

Durée: 2h

Documentation autorisée: Une feuille de notes manuscrite recto-verso

Pondération: 25% de la note finale du cours

Matières couvertes: Tout le contenu vu jusqu'à la semaine 7 incluse (voir résumé ci-dessous)

Résumé des notions à connaître pour l'examen

Semaine 1 - Introduction à PowerShell

  • Comprendre les concepts de base de PowerShell et de l'interface PowerShell
  • Connaître la syntaxe de base des commandes PowerShell: Verbe-Nom -Paramètre Valeur
  • Paramètres: Comprendre ce qu'est un paramètre "switch", un paramètre positionnel vs nommé, et les paramètres obligatoires vs optionnels
  • Obtenir de l'aide:
    • Savoir quelles commandes utiliser
    • Savoir comment lire les fichiers d'aide
  • Alias:
    • Comprendre ce que sont les alias
    • Savoir comment obtenir la commande complète d'un alias
    • Savoir comment obtenir les alias d'une commande

Semaine 2 - Pipelines et objets

  • Pipelines:
    • Comprendre le concept de pipeline
    • Savoir comment lire et écrire une commande avec des pipelines
    • Comprendre comment les objets sont passés et transformés entre les commandes dans un pipeline
  • Objets:
    • Comprendre ce qu'est un objet dans PowerShell
    • Savoir comment afficher les propriétés et méthodes d'un objet (Get-Member) et comment y accéder (notation pointée)
  • Pipelines et objets:
    • Savoir comment filtrer des objets (Where-Object), sélectionner des propriétés spécifiques d'objets (Select-Object), et trier des objets (Sort-Object)

Semaine 3 - Scripts PowerShell

  • Notions de base des scripts PowerShell:
    • Savoir comment créer et exécuter un script PowerShell
    • Savoir écrire et lire un script PowerShell avec les notions de base: variables, commentaires, types de données, paramètres, substitution de commandes, tableaux, chaînes de caractères, hashtables, entrées et sorties utilisateur
  • Structures conditionnelles (If/Else):
    • Savoir écrire et lire des structures conditionnelles
    • Connaître les opérateurs de comparaison et logiques mentionnés dans les notes de cours
  • Boucles (For, ForEach, ForEach-Object, While):
    • Savoir écrire et lire les boucles For, ForEach, ForEach-Object, While
    • Comprendre quand utiliser chaque type de boucle

Semaine 4 - PowerShell à distance

  • Comprendre les différences dans les différentes façons d'exécuter des commandes PowerShell à distance : Enter-PSSession, Invoke-Command (avec -ComputerName), New-PSSession + Invoke-Command (avec -Session)
  • Savoir utiliser chaque méthode, et comprendre quand utiliser chaque méthode
  • Comprendre comment gérer plusieurs sessions (New-PSSession, Get-PSSession, Remove-PSSession)

Semaine 5 - Lire et écrire des fichiers

  • Chemins d'accès:
    • Savoir naviguer dans le système de fichiers (Set-Location, Get-Location, Get-ChildItem)
    • Comprendre les différences entre chemins relatifs et absolus et les commandes de base pour manipuler les chemins d'accès (Join-Path, Split-Path, Test-Path, Resolve-Path)
  • Fichiers texte:
    • Savoir utiliser la redirection de sortie (>, >>, 2>, 2>&1) pour écrire la sortie d'une commande dans un fichier
    • Savoir lire un fichier texte (Get-Content avec et sans -Raw) et écrire (Set-Content, Add-Content)
    • Comprendre la différence entre la redirection de sortie et Set-Content/Add-Content
    • Comprendre les limitations de la lecture de fichiers texte (perte de la structure des objets)
  • Fichiers CSV:
    • Savoir lire et écrire un fichier CSV (Import-Csv, Export-Csv)
    • Comprendre comment manipuler les objets importés depuis un CSV
  • Fichiers JSON:
    • Comprendre la syntaxe JSON
    • Savoir lire et écrire un fichier JSON (ConvertFrom-Json, ConvertTo-Json)
    • Comprendre comment manipuler les objets importés depuis un JSON
  • Fichiers HTML:
    • Savoir écrire un fichier HTML (ConvertTo-Html)
  • Objets personnalisés:
    • Savoir créer et manipuler des objets personnalisés ([PSCustomObject])

Semaine 6 - PowerShell sous Linux

  • Comprendre les différences entre PowerShell sous Windows et Linux (chemins d'accès, commandes disponibles, etc.)
  • Savoir utiliser à la fois Bash et PowerShell sous Linux (interactions possibles)
  • Savoir écrire des scripts PowerShell qui fonctionnent à la fois sous Windows et Linux (portables)
    • Comprendre comment gérer les différences de commandes disponibles (avec $IsLinux, $IsWindows ou $env:OS)

Semaine 7 - Planification de tâches (Windows et Linux)

  • Sous Windows:
    • En utilisant le Planificateur de tâches:
      • Savoir comment créer une tâche planifiée via l'interface graphique
      • Comprendre les options courantes (déclencheurs, actions, conditions, paramètres)
    • PowerShell Background Jobs:
      • Comprendre ce qu'est un job en arrière-plan
      • Savoir comment créer, et manipuler des jobs en arrière-plan (Start-Job, Get-Job, Receive-Job, Stop-Job, Remove-Job)
        • Comprendre que Receive-Job vide le buffer des résultats
    • PowerShell Scheduled Jobs:
      • Comprendre ce qu'est un scheduled job
      • Savoir comment créer et manipuler des scheduled jobs (Register-ScheduledJob, Get-ScheduledJob, Unregister-ScheduledJob)
      • Connaître la différence entre Get-Job et Get-ScheduledJob
      • Savoir créer et modifier les déclencheurs d'un scheduled job
      • Savoir créer et modifier les options d'un scheduled job
  • Sous Linux:
    • Comprendre le fonctionnement de cron et crontab
    • Savoir comment éditer la crontab utilisateur (crontab -e)
      • Comprendre la syntaxe d'une ligne de crontab (minute, heure, jour du mois, mois, jour de la semaine, commande)
      • Savoir comment rediriger la sortie d'une commande dans un fichier (>, >>, 2>, 2>&1)
    • Savoir les commandes courantes pour gérer cron (crontab -l, crontab -r)
    • Comprendre les différences entre la crontab utilisateur et la crontab système (/etc/crontab, /etc/cron.d, /etc/cron.daily, etc.)
    • Comprendre les limitiations de cron (environnement minimal, pas de profil chargé, pas d'interaction utilisateur, etc.) et comment les contourner (chemins absolus, définir le PATH dans le crontab ou le script, charger le profil, etc.)