Modifier le mot de passe d’un compte AD avec PowerShell

I. Présentation

La gestion des utilisateurs implique également de gérer le cycle de vie de ces comptes utilisateurs, et il y a fort à parier qu’un jour on vous demande de réinitialiser le mot de passe d’un compte utilisateur, voire même de plusieurs utilisateurs. Par ailleurs, dans un processus de désactivation des comptes utilisateurs, il peut être intéressant de systématiquement réinitialiser le mot de passe du compte en question.

Dans ce chapitre, nous allons justement voir comment modifier le mot de passe d’un utilisateur Active Directory avec PowerShell.

II. Réinitialiser un mot de passe d’un utilisateur Active Directory

Le cmdlet « Set-ADAccountPassword » intégré au module Active Directory de PowerShell sera notre allié pour réaliser cette action.

L’utilisation de cette commande nécessite de spécifier plusieurs paramètres :

  • -Identity pour spécifier l’utilisateur cible
  • -NewPassword pour indiquer le nouveau mot de passe (via une chaîne SecureString)
  • -Reset pour indiquer que nous souhaitons réinitialiser le mot de passe

Pour modifier le mot de passe de l’utilisateur « j.nanas », cela donne :

Set-ADAccountPassword -Identity j.nanas -Reset -NewPassword (ConvertTo-SecureString -AsPlainText "GhYjKb!M05n" -Force)

En fait, le fait d’indiquer -Reset permet de réinitialiser le mot de passe, c’est-à-dire qu’on le change sans connaître le mot de passe actuel, car les droits le permettent.

Pour respecter le processus classique où l’on se met dans la peau d’un utilisateur, il faudrait spécifier à la fois le mot de passe actuel et le nouveau mot de passe, dans ce cas il serait nécessaire d’utiliser le paramètre -OldPassword à la place de -Reset. Néanmoins, dans un script il faudra toujours utiliser la commande via le -Reset, mais c’est intéressant de connaître les deux options.

Par ailleurs, si vous souhaitez simplement modifier un mot de passe et avoir un prompt qui vous demande de le saisir deux fois :

Set-ADAccountPassword -Identity j.nanas -Reset

III. Modifier des mots de passe en lot

Pour réinitialiser des mots de passe pour un lot d’utilisateurs, on peut se baser sur un fichier CSV ou alors cibler une unité d’organisation spécifique dans l’Active Directory. Dans un tutoriel déjà en ligne sur le site, je vous explique comment réinitialiser des mots de passe en prenant un fichier CSV qui contient la liste des utilisateurs et le nouveau mot de passe à attribuer.

Pour récupérer une liste d’utilisateurs d’une OU spécifique, vous pouvez vous reporter au chapitre précédent où nous avons vu comment récupérer des informations sur les utilisateurs dans l’Active Directory.

Voici le lien vers cet article : Modifier des mots de passe en lot dans l'AD

IV. Demander à l’utilisateur de changer son mot de passe

Réinitialiser le mot de passe c’est une chose, mais vous ne devez pas oublier que vous devez lui demander de le personnaliser à la prochaine ouverture de session.

Cela nécessite une action supplémentaire afin d’activer l’option « L’utilisateur devra changer le mot de passe » dans les propriétés de l’objet de cet utilisateur.

En l’occurrence, pour demander à l’utilisateur « j.nanas » de modifier son mot de passe à la prochaine ouverture de session, il faudra modifier le compte utilisateur avec cette commande :

Set-ADUser -Identity j.nanas -ChangePasswordAtLogon $true

Nous passons simplement le paramètre -ChangePasswordAtLogon sur $true (vrai) afin d’activer l’option « L’utilisateur devra changer le mot de passe ». Pour que ce soit plus visuel, voici à quoi je fais référence :

Cette dernière commande me donne l’occasion de faire la transition avec le prochain chapitre puisque nous allons voir comment modifier les comptes utilisateurs dans l’Active Directory, avec PowerShell.

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Florian Burnel

Ingénieur système et réseau et cofondateur d'IT-Connect. Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.

florian has 3218 posts and counting.See all posts by florian