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