Présentation du projet
Ce projet consiste à effectuer une réinitialisation de mot de passe utilisateur dans Active Directory, une tâche courante du support informatique nécessitant rigueur et respect des procédures de sécurité.
Objectifs
- Maîtriser la procédure de reset de mot de passe
- Respecter les processus de sécurité et vérification
- Utiliser les différentes méthodes (GUI et PowerShell)
- Appliquer les politiques de mot de passe
- Documenter l’intervention
- Communiquer efficacement avec l’utilisateur
Contexte technique
Problématique
Un utilisateur peut avoir besoin d’une réinitialisation pour :
- Oubli du mot de passe
- Verrouillage du compte (trop de tentatives)
- Compte compromis (sécurité)
- Nouveau collaborateur (premier accès)
- Changement forcé (politique de sécurité)
Solution mise en œuvre
Processus sécurisé de réinitialisation :
- Vérification de l’identité du demandeur
- Réinitialisation du mot de passe
- Déverrouillage du compte si nécessaire
- Communication sécurisée du nouveau mot de passe
- Obligation de changement à la première connexion
Réalisation technique
Vérification préalable
Avant toute réinitialisation :
Vérifier l’identité du demandeur :
- Numéro de téléphone interne
- Questions de sécurité
- Demande via le manager (si doute)
- Ticket GLPI créé
Vérifier l’état du compte :
POWERSHELLGet-ADUser -Identity jdupont -Properties LockedOut, PasswordExpired, Enabled
Méthode 1 : Interface graphique (ADUC)
Étapes :
Ouvrir AD :
PLAINTEXTDémarrer > Outils d'administration Windows > Utilisateurs et ordinateurs Active DirectoryLocaliser l’utilisateur :
- Rechercher (Ctrl+F) ou naviguer dans les OU
- Trouver “jdupont”
Réinitialiser le mot de passe :
- Clic droit sur l’utilisateur
- “Réinitialiser le mot de passe…”
- Cocher ✅ “L’utilisateur doit changer le mot de passe à la prochaine ouverture de session”
- Cocher ✅ “Déverrouiller le compte” (si verrouillé)
- Entrer le nouveau mot de passe temporaire
- Confirmer

- Vérification :
- Propriétés > Compte
- Vérifier que le compte est actif
- Vérifier que “Verrouillé” n’est pas coché

Méthode 2 : PowerShell
Réinitialisation simple :
# Définir un nouveau mot de passe temporaire
$Password = ConvertTo-SecureString "TempP@ss2025!" -AsPlainText -Force
# Réinitialiser le mot de passe
Set-ADAccountPassword -Identity jdupont -NewPassword $Password -Reset
# Forcer le changement à la prochaine connexion
Set-ADUser -Identity jdupont -ChangePasswordAtLogon $true
# Déverrouiller le compte si nécessaire
Unlock-ADAccount -Identity jdupont
# Vérifier l'état du compte
Get-ADUser -Identity jdupont -Properties LockedOut, PasswordExpired, PasswordLastSetScript complet avec vérifications :
# Script de réinitialisation de mot de passe AD
param(
[Parameter(Mandatory=$true)]
[string]$Username
)
# Vérifier que l'utilisateur existe
try {
$User = Get-ADUser -Identity $Username -Properties LockedOut, PasswordExpired
Write-Host "Utilisateur trouvé: $($User.Name)" -ForegroundColor Green
} catch {
Write-Host "Erreur: Utilisateur '$Username' introuvable!" -ForegroundColor Red
exit
}
# Afficher l'état actuel
Write-Host "`nÉtat actuel du compte:" -ForegroundColor Yellow
Write-Host " - Compte verrouillé: $($User.LockedOut)"
Write-Host " - Mot de passe expiré: $($User.PasswordExpired)"
# Générer un mot de passe temporaire sécurisé
$TempPassword = -join ((48..57) + (65..90) + (97..122) | Get-Random -Count 16 | ForEach-Object {[char]$_})
$TempPassword += "!@" # Ajouter des caractères spéciaux
$SecurePassword = ConvertTo-SecureString $TempPassword -AsPlainText -Force
# Réinitialiser le mot de passe
Set-ADAccountPassword -Identity $Username -NewPassword $SecurePassword -Reset
# Forcer le changement à la prochaine connexion
Set-ADUser -Identity $Username -ChangePasswordAtLogon $true
# Déverrouiller si nécessaire
if ($User.LockedOut) {
Unlock-ADAccount -Identity $Username
Write-Host "✓ Compte déverrouillé" -ForegroundColor Green
}
# Résultat
Write-Host "`n✓ Mot de passe réinitialisé avec succès!" -ForegroundColor Green
Write-Host "Mot de passe temporaire: $TempPassword" -ForegroundColor Cyan
Write-Host "`nÀ communiquer à l'utilisateur de manière sécurisée." -ForegroundColor Yellow
Write-Host "L'utilisateur devra changer ce mot de passe à la prochaine connexion.`n"
# Créer un log
$LogEntry = "[$(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')] Réinitialisation du mdp pour $Username"
Add-Content -Path "C:\Logs\AD_Password_Resets.log" -Value $LogEntryMéthode 3 : Portail Self-Service (SSPR)
Configuration d’un Self-Service Password Reset :
- Permet aux utilisateurs de réinitialiser eux-mêmes
- Après vérification (SMS, email, questions)
- Réduit la charge du support
- Solution Azure AD ou solutions tierces (ManageEngine, etc.)
États de compte et résolutions
| État du compte | Cause | Résolution | Commande PowerShell |
|---|---|---|---|
| Verrouillé | 5+ tentatives échouées | Unlock-ADAccount -Identity user | Unlock-ADAccount -Identity jdupont |
| Désactivé | Admin l’a désactivé | Réactiver le compte | Enable-ADAccount -Identity jdupont |
| Expiré | Durée max dépassée | Réinit + ChangePasswordAtLogon | Voir script complet ci-dessus |
| Pas d’accès | Compte OK mais droits insuffisants | Ajouter aux groupes | Add-ADGroupMember -Identity "IT-Support" -Members "jdupont" |
| Certificat expiré | Pour smartcard users | Renouveler certificat | Via PKI |
Communication sécurisée du mot de passe
⚠️ JAMAIS par email ni SMS !
Méthodes recommandées
| Méthode | Avantages | Inconvénients |
|---|---|---|
| Téléphone interne | Direct, sûr, vérifie identité | Non-écrit, confirmation verbale requise |
| Face-à-face | Très sûr, vérification immédiate | Non-applicable à distance |
| Portail chiffré | Traçable, lien d’un seul usage | Nécessite infrastructure |
| Password Manager | Sécurisé, automatisé | Nécessite adoption utilisateur |
Protocole de communication
Technicien: "Bonjour Jean, je t'appelle concernant ton mot de passe réinitialisé."
(Confirmer identité par questions de sécurité)
Technicien: "Ton mot de passe temporaire est : C0mpl3x!ty&Secur1ty2025"
Utilisateur: "Répète-moi s'il te plaît" (le client confirme)
Technicien: "À la prochaine connexion, tu devras le changer par un mot de passe personnel."Déverrouillage de compte
Flags de compte AD importants
# Voir tous les flags d'un compte
Get-ADUser -Identity "jdupont" -Properties UserAccountControl |
Select-Object -ExpandProperty UserAccountControl
# Voir les différents flags
$Flags = @{
'512' = 'Compte actif'
'514' = 'Compte désactivé'
'66050' = 'Compte verrouillé + smartcard requis'
'262144' = 'Mot de passe expiré'
}
# Voir si le compte est verrouillé
Get-ADUser -Identity "jdupont" -Properties LockedOut |
Select-Object Name, LockedOutDéverrouillage avec sécurité
# 1. Vérifier qui a verrouillé le compte
Get-ADUser -Identity "jdupont" -Properties AccountLockoutTime |
Select-Object Name, AccountLockoutTime
# 2. Identifier la cause
# - Brute-force attempt ? → Vérifier les logs de sécurité
Get-WinEvent -FilterHashtable @{
LogName = 'Security'
ID = 4740 # Account lockout event
Data = 'jdupont'
} | Format-Table TimeCreated, Message
# 3. Déverrouiller
Unlock-ADAccount -Identity "jdupont"
# 4. Vérifier la réussite
Get-ADUser -Identity "jdupont" -Properties LockedOut |
Select-Object Name, LockedOut # Doit afficher FalseRésultats obtenus
✅ Mot de passe réinitialisé avec succès ✅ Compte déverrouillé si nécessaire ✅ Changement forcé à la prochaine connexion ✅ Mot de passe communiqué de manière sécurisée ✅ Utilisateur peut se reconnecter ✅ Intervention documentée dans le ticket
Compétences développées
- Gestion des comptes Active Directory
- Procédures de support utilisateur sécurisées
- Utilisation de PowerShell pour l’administration AD
- Respect des politiques de sécurité
- Communication avec les utilisateurs
- Documentation des interventions
- Déverrouillage et déblocage de comptes
- Vérification et audit d’état de compte
Exemples de bons mots de passe
✅ MonP@ssw0rd2025!Secure
✅ Trav@il#Bureau$2025
✅ C0mpl3x!ty&Secur1ty
❌ password123 (trop simple)
❌ jdupont2025 (basé sur le nom)
❌ 123456789 (pas de lettres)
Vérification d’un compte verrouillé
# Trouver tous les comptes verrouillés
Search-ADAccount -LockedOut | Select-Object Name, SamAccountName, LockedOut
# Voir le nombre de tentatives de connexion échouées
Get-ADUser -Identity jdupont -Properties badPwdCount |
Select-Object Name, badPwdCount
# Voir la date du dernier verrouillage
Get-ADUser -Identity jdupont -Properties AccountLockoutTime |
Select-Object Name, AccountLockoutTime
# Voir l'historique de connexion (tentatives échouées)
Get-ADUser -Identity jdupont -Properties lastLogonTimestamp, LastBadPasswordAttempt |
Select-Object Name, lastLogonTimestamp, LastBadPasswordAttemptDocumentation de l’intervention
Ticket GLPI :
Ticket #5678 - Réinitialisation mot de passe
Utilisateur: Jean Dupont (jdupont)
Date: 01/11/2025 15:30
Technicien: Lucas Lopes Da Silva
Problème:
Compte verrouillé après 5 tentatives de connexion échouées.
Actions effectuées:
1. Vérification identité (téléphone interne)
2. Vérification état du compte (verrouillé)
3. Réinitialisation du mot de passe
4. Déverrouillage du compte
5. Communication sécurisée du mot de passe temporaire (téléphone)
6. Confirmation de la connexion réussie
Résultat: ✓ Résolu
Durée: 10 minutes
Statut: FerméRessources et documentation
- Microsoft AD Password Reset
- RFC 4876 - LDAP Password Policy
- PowerShell AD Module - Set-ADAccountPassword
- Windows Event ID 4740 - Account Lockout
- OWASP Password Storage Cheat Sheet
Points clés d’apprentissage
- La vérification d’identité est CRUCIALE avant toute réinitialisation
- Le compte peut être verrouillé après plusieurs tentatives échouées
- Le changement forcé à la prochaine connexion améliore la sécurité
- Les logs AD enregistrent toutes les modifications
- PowerShell permet d’automatiser et de tracer les opérations
- Un mot de passe temporaire doit être complexe même s’il est changé ensuite
- Jamais communiquer le mot de passe par email ou SMS
- Déverrouillage ≠ Réinitialisation (distinctions importantes)
- Flags UserAccountControl (512, 514, etc.) indiquent l’état du compte
- Event ID 4740 dans Security logs = tentative de verrouillage par brute-force
