
Dans un environnement Windows Server avec Active Directory, il est fréquent de devoir créer de nouveaux comptes utilisateurs de façon automatisée. Ce tutoriel montre comment créer un compte, définir un mot de passe temporaire, le désactiver temporairement, puis forcer le changement de mot de passe à la première connexion, le tout via PowerShell.
Contexte
Vous êtes administrateur AD et vous devez provisionner un compte pour un nouveau collaborateur. Vous devez vous assurer que le mot de passe initial ne reste pas valide et que l’utilisateur devra le changer dès sa première connexion, afin de respecter les bonnes pratiques de sécurité.

Quand l’utiliser
- Intégration d’un nouvel employé dans l’entreprise.
- Création massive d’utilisateurs à partir d’un CSV.
- Automatisation d’un processus d’onboarding via scripts ou orchestrateurs.
⚙️ Étapes
🔹
1. Importer le module ActiveDirectory
Import-Module ActiveDirectory
🔹
2. Définir les variables du nouvel utilisateur
$SamAccountName = "jdupont"
$NomComplet = "Jean Dupont"
$OU = "OU=Utilisateurs,DC=contoso,DC=com"
$MotDePasseTemp = ConvertTo-SecureString "TempPass!2024" -AsPlainText -Force
🔹
3. Créer le compte utilisateur avec le mot de passe temporaire
New-ADUser `
-Name $NomComplet `
-SamAccountName $SamAccountName `
-AccountPassword $MotDePasseTemp `
-Enabled $false `
-Path $OU `
-ChangePasswordAtLogon $true `
-PasswordNeverExpires $false
🔹
4. Activer le compte
Enable-ADAccount -Identity $SamAccountName
🔹
5. Vérifier la configuration
Get-ADUser $SamAccountName -Properties PasswordExpired, PasswordLastSet, Enabled |
Select-Object Name, Enabled, PasswordExpired, PasswordLastSet
⚡ Méthode alternative
Si vous préférez utiliser un CSV pour créer plusieurs comptes en même temps, vous pouvez adapter le script :
Import-Csv "C:\temp\users.csv" | ForEach-Object {
$pwd = ConvertTo-SecureString $_.TempPassword -AsPlainText -Force
New-ADUser -Name $_.FullName -SamAccountName $_.Login `
-AccountPassword $pwd -Enabled $false -Path $_.OU `
-ChangePasswordAtLogon $true
Enable-ADAccount -Identity $_.Login
}
⚠️ Bonnes pratiques de sécurité
- Utilisez toujours
-AsPlainText -Forceuniquement pour des mots de passe temporaires générés de façon contrôlée. - Placez les comptes dans une OU dédiée aux nouveaux employés pour appliquer des GPO spécifiques.
- Activez la politique Passwords must meet complexity requirements au niveau du domaine.
- Enregistrez les logs d’audit (
Get-EventLog -LogName Security) pour tracer la création des comptes. - Supprimez ou désactivez le compte si le collaborateur ne rejoint pas l’entreprise dans les 30 jours.
✅ Conclusion
Ce petit script PowerShell vous permet de créer un compte AD sécurisé, de le désactiver temporairement, puis de forcer le changement du mot de passe à la première connexion. Vous pouvez l’étendre pour gérer des imports massifs via CSV ou l’intégrer à des solutions d’orchestration comme Azure Automation ou Ansible.
