Aller au contenu

Manipulation de PowerShell Active Directory

1. Objectif du cours

Apprendre à administrer les utilisateurs et groupes d’un Active Directory via PowerShell : création, vérification, gestion des groupes et gestion basique des erreurs. Ce cours présente les commandes essentielles et un exemple de script interactif.

2. Notions et définitions essentielles

  • Module Active Directory : extension PowerShell apportant les cmdlets AD.
  • Objet utilisateur (AD User) : compte dans l’annuaire, créé par New-ADUser.
  • OU / CN / DC : emplacement dans l’arborescence AD (conteneurs et domaines).
  • Groupe AD : objet de regroupement (sécurité ou distribution) créé par New-ADGroup.
  • Try/Catch/Finally, -ErrorAction, -ErrorVariable : mécanismes de gestion d’erreurs en PowerShell.

3. Fonctionnement et principes

  • Avant toute administration via PowerShell, le module AD doit être chargé pour disposer des cmdlets.
  • New-ADUser crée des comptes avec des paramètres par défaut : placement dans le conteneur utilisateur, compte désactivé, pas de mot de passe, membre du groupe Utilisateur du domaine, et première connexion obligeant à réinitialiser le mot de passe.
  • On peut créer des utilisateurs simples ou préciser des attributs (Name, GivenName, Surname, SamAccountName, UserPrincipalName, Path, AccountPassword, Enabled).
  • Pour les groupes, un ensemble limité de cmdlets (recherchables par motif "Group") permet création, ajout/suppression de membres, etc. Les groupes peuvent avoir des catégories et portées (ex. Security / Global).
  • Gestion d’erreurs : on contrôle le comportement avec -ErrorAction et capture avec -ErrorVariable ; pour gérer proprement les exceptions on utilise Try/Catch/Finally.

4. Commandes et manipulations

(Regrouper par procédure — seules les commandes présentes dans le PDF) - Préparer l’environnement : - Import-Module ActiveDirectory : charge les cmdlets AD. - Créer et vérifier des utilisateurs : - Get-Command New-ADUser –Syntax : afficher la syntaxe disponible. - New-ADUser J.Dupont : créer un utilisateur minimal. - Get-ADUser -Filter * -Properties samAccountName | select samAccountName : lister les samAccountName pour vérifier la création. - Enable-ADAccount -Identity "CN=Christian,CN=Users,DC=studi,DC=local" : activer un compte. - New-ADUser ... -AccountPassword(Read-Host -AsSecureString "Input Password") -Enabled $true : création avec mot de passe sécurisé fourni via Read-Host. - Get-ADUser J.Dupont -Properties ... | Select ... : afficher des propriétés détaillées d’un utilisateur. - Gérer les groupes : - Get-Command -Module ActiveDirectory -Name "Group" : lister les cmdlets relatifs aux groupes. - Get-Command New-ADGroup –Syntax : afficher la syntaxe de création de groupe. - New-ADGroup "GroupeStudi" et New-ADGroup "Compta" -Path ... -GroupCategory Security -GroupScope Global -PassThru –Verbose : création simple et avancée de groupe. - Add-AdGroupMember -Identity Compta -Members J.Dupont : ajouter un membre. - Remove-ADGroupMember -Identity Compta -Members J.Dupont : supprimer un membre. - Gestion des erreurs : - Utilisation de -ErrorAction Stop et -ErrorVariable erreurAD pour stopper et capturer une erreur. - Structure Try / Catch / Finally pour gérer les exceptions et exécuter un bloc final.

5. Sécurité et bonnes pratiques

  • Toujours lancer PowerShell en tant qu’administrateur (nécessaire pour certaines opérations AD).
  • Charger explicitement le module Active Directory avant d’exécuter des cmdlets AD.
  • Fournir les mots de passe via Read-Host -AsSecureString pour éviter d’exposer des chaînes en clair.
  • Anticiper les problèmes de permissions : certaines erreurs fréquentes proviennent d’un manque de droits (ex. System.UnauthorizedAccessException).
  • Utiliser la gestion d’erreurs (-ErrorAction, -ErrorVariable, Try/Catch) pour contrôler l’impact des échecs et afficher des messages explicites.

6. Points essentiels à retenir pour le TSSR

  • Charger le module AD est obligatoire pour utiliser les cmdlets Active Directory.
  • New-ADUser crée un compte désactivé par défaut, sans mot de passe et placé dans le conteneur utilisateur.
  • Enable-ADAccount sert à activer un compte créé.
  • Pour gérer les groupes, on dispose d’un ensemble restreint (~11 applets) et New-ADGroup crée un groupe (avec options de catégorie et portée).
  • Add-AdGroupMember et Remove-ADGroupMember permettent d’ajouter/supprimer des membres d’un groupe.
  • Read-Host -AsSecureString doit être utilisé pour saisir un mot de passe de manière sécurisée lors d’une création automatisée.
  • Vérifier la création via un listing des samAccountName ou l’affichage des propriétés de l’utilisateur.
  • -ErrorAction Stop force l’arrêt en cas d’erreur ; -ErrorVariable capture l’erreur ; Try/Catch/Finally structure la gestion des exceptions.
  • Toujours exécuter PowerShell en tant qu’administrateur pour éviter des erreurs liées aux droits.
  • Le bloc Finally s’exécute quel que soit le résultat du Try.

7. Tableau récapitulatif

Objet État par défaut à la création Vérification Action pour activer
Utilisateur créé par New-ADUser Désactivé, sans mot de passe Vérifier présence dans la liste des samAccountName / propriétés Activer le compte via l’applet d’activation
Groupe simple Créé dans le chemin courant Vérifier existence du groupe Recréer avec paramètres (Path/Category/Scope) si nécessaire
Ajout d’un membre Aucun membre ajouté par défaut Vérifier la liste des membres du groupe Ajouter via l’applet d’ajout
Gestion d’erreurs Erreurs possible (permissions, objet absent) Capturer et afficher l’erreur Contrôler avec -ErrorAction / Try-Catch

8. Vérifications pratiques

  • Confirmer la création d’un utilisateur : vérifier qu’il apparaît dans la liste des comptes (samAccountName) et consulter ses propriétés (Enabled, whenCreated, PasswordLastSet).
  • S’assurer qu’un compte est activé en contrôlant l’attribut Enabled.
  • Vérifier la présence d’un utilisateur dans un groupe en consultant la liste des membres du groupe.
  • Après une opération de création/ajout, observer les messages retournés (ex. PassThru/Verbose) pour confirmer l’action.
  • En cas d’erreur, vérifier la variable d’erreur capturée et le message du catch pour diagnostiquer permissions ou absence d’objet.

9. Flashcards Anki

Quel module PowerShell faut-il installer pour administrer Active Directory ? :: Active Directory Quelle commande affiche la syntaxe complète du cmdlet New-ADUser ? :: Get-Command New-ADUser –Syntax En créant un utilisateur avec New-ADUser J.Dupont, le compte est-il activé ? :: Non, il est désactivé Où est créé par défaut le compte utilisateur créé via New-ADUser minimal ? :: Dans le répertoire utilisateur (CN=Users) Le mot de passe est-il configuré par défaut lors d’une création simple New-ADUser ? :: Non Quelle applet permet d’activer un compte AD ? :: Enable-ADAccount Quelle commande permet de lister les cmdlets relatifs aux groupes dans le module ActiveDirectory ? :: Get-Command -Module ActiveDirectory -Name "Group" Combien d’applets existent pour gérer les groupes selon le cours ? :: 11 Quel cmdlet est utilisé pour créer un groupe AD ? :: New-ADGroup Que fait -ErrorAction Stop en PowerShell ? :: Force l’arrêt de l’exécution dès qu’une erreur se produit