Comment réinitialiser le mot de passe d’un compte avec PowerShell sous Windows 11 25H2

Gérer les comptes utilisateurs sous Windows 11 peut s’avérer complexe, surtout si vous souhaitez éviter d’utiliser l’interface graphique à chaque fois. Les options de l’interface sont parfois peu intuitives ou trop lentes, notamment lorsqu’il s’agit de gérer plusieurs comptes ou d’effectuer des modifications automatisées. C’est là que PowerShell entre en jeu. Puissant, flexible et, si vous l’utilisez correctement, relativement sécurisé, il l’est bien plus que l’utilisation directe des commandes « net user ».Bien sûr, Windows étant ce qu’il est, il existe quelques subtilités et pièges, notamment en matière de mots de passe, car l’objectif est de garantir la sécurité tout en vous simplifiant la vie. Ce guide présente plusieurs méthodes, certaines plus sécurisées que d’autres, afin que vous puissiez choisir celle qui convient le mieux à votre situation. Attention : ces méthodes ne fonctionnent pas avec les comptes Microsoft, mais uniquement avec les comptes locaux. Si vous possédez un compte Microsoft, vous devrez vous rendre sur la page de votre compte pour réinitialiser votre mot de passe, ce qui va un peu à l’encontre de l’objectif de ce guide.

Comment modifier en toute sécurité les mots de passe des utilisateurs locaux avec PowerShell

Méthode 1 : Utilisation de Get-LocalUser et Set-LocalUser – La méthode recommandée

Cette méthode est sans doute la plus sûre car elle évite d’utiliser des mots de passe en clair dans les scripts. Elle chiffre votre mot de passe au fur et à mesure que vous le saisissez, puis l’applique. Attention : vous devez exécuter PowerShell en tant qu’administrateur, mais c’est une procédure standard pour la gestion des comptes. C’est plus sûr et le risque de fuite de votre mot de passe est moindre qu’avec des entrées en ligne de commande classiques. De plus, c’est une bonne habitude à prendre.

Ouvrir PowerShell en tant qu’administrateur

  • Cliquez sur le menu Démarrer
  • Tapez PowerShell
  • Faites un clic droit sur Windows PowerShell et choisissez « Exécuter en tant qu’administrateur ».
  • Confirmez bien sûr l’invite du Contrôle de compte d’utilisateur (UAC).

Liste de tous les utilisateurs locaux

Get-LocalUser

Celui-ci supprime simplement tous les comptes locaux. Pratique si vous ne vous souvenez pas du nom d’utilisateur exact ou si vous voulez vérifier avant d’effectuer des modifications.

Créez un mot de passe sécurisé

$Password = Read-Host "Enter new password" -AsSecureString

Saisissez votre nouveau mot de passe lorsque vous y êtes invité. Il sera stocké de manière sécurisée sous forme de chaîne chiffrée dans PowerShell. Le mécanisme est imprévisible, mais il fonctionne. N’oubliez pas ce mot de passe si vous devez le réutiliser ultérieurement.

Sélectionnez le compte utilisateur

$UserAccount = Get-LocalUser -Name "Username"

Remplacez "Username"par le nom de compte réel. Par exemple, si votre compte est kalki51, utilisez ce nom.

Appliquer le nouveau mot de passe

$UserAccount | Set-LocalUser -Password $Password

Si tout se passe bien, le mot de passe devrait être mis à jour sans problème. Honnêtement, sur certaines configurations, cela peut prendre une seconde ou deux, et sur d’autres, il faudra peut-être fermer et rouvrir PowerShell pour vérifier que la modification a bien été prise en compte. Mais globalement, cette méthode offre une sécurité et une flexibilité appréciables.

Quand l’utiliser

Pour une sécurité accrue, notamment si l’automatisation ou les scripts font partie de votre flux de travail, voici la solution idéale. Notez cependant que vous aurez besoin des droits d’administrateur et de PowerShell version 5.1 ou ultérieure. De plus, cette méthode ne fonctionne pas avec les comptes locaux, mais uniquement avec les comptes liés à une connexion Microsoft.

Méthode 2 : Utilisation de Set-LocalUser avec ConvertTo-SecureString

C’est plus rapide et sans complications, mais moins sûr, car le mot de passe est inclus en clair dans le script. C’est risqué si quelqu’un peut jeter un œil à votre script ou à l’historique des commandes. Malgré tout, c’est parfois une solution rapide ; soyez simplement conscient des failles de sécurité.

Format de commande :

Set-LocalUser -Name "Username" -Password (ConvertTo-SecureString -AsPlainText "NewPassword" -Force)

Exemple:

Set-LocalUser -Name "kalki51" -Password (ConvertTo-SecureString -AsPlainText "tax234@52" -Force)

Attention :

  • Cela convertit instantanément du texte brut en une chaîne de caractères sécurisée.
  • Aucun message ni confirmation – vérifiez donc bien que vous avez tout saisi correctement.
  • Testez-le en vous déconnectant/reconnectant ou en utilisant un autre compte pour vérifier que le nouveau mot de passe fonctionne.

Quand l’utiliser

Si vous effectuez des modifications rapides et ponctuelles et que la sécurité de votre script ne vous préoccupe pas outre mesure, cette méthode peut vous faire gagner du temps. En revanche, évitez de l’utiliser en production ou dans des scripts susceptibles d’être partagés.

Méthode 3 : Utilisation de WMI (Win32_UserAccount)

Cette méthode est un peu plus ancienne, mais elle fonctionne encore bien dans certains cas. Elle consiste à récupérer l’objet utilisateur via WMI, puis à appeler la méthode SetPassword. L’avantage ? C’est direct et immédiat, sans avoir à saisir de code dans la console ensuite.

Récupérer l’objet utilisateur

$user = Get-WmiObject Win32_UserAccount -Filter "Name='Username'"

Là encore, remplacez 'Username'par le compte d’intérêts.

Définir le nouveau mot de passe

$user. SetPassword("NewPassword")

Simple, direct et, sur certaines configurations, plus fiable.

Exemple:

$user = Get-WmiObject Win32_UserAccount -Filter "Name='kalki52'" $user. SetPassword("pswd12345")

Attention

Cette méthode peut parfois générer des erreurs si le compte est désactivé ou si les autorisations WMI sont mal configurées. Mais lorsqu’elle fonctionne, elle est rapide et efficace.

Quand l’utiliser

Idéal pour les scripts que vous souhaitez exécuter sans intervention de l’utilisateur, notamment dans les environnements d’entreprise. Ou si d’autres méthodes échouent pour une raison ou une autre.

Méthode 4 : Commande utilisateur réseau – Rapide mais risquée

C’est une méthode un peu rapide et sans fioritures, et honnêtement, elle m’inquiète un peu car les mots de passe sont visibles en clair. En gros, vous ouvrez l’invite de commandes ou PowerShell et vous exécutez :

net user Username NewPassword

Exemple:

net user kalki51 Saht!3225

⚠️ Avertissement :

  • Les mots de passe sont stockés en clair, ce qui peut constituer un risque pour la sécurité.
  • La commande est enregistrée dans l’historique de votre terminal, facile à retrouver ultérieurement.
  • N’utilisez cette fonction qu’en cas de besoin, par exemple en cas d’urgence ou lorsque d’autres options ne sont pas disponibles, et effacez ensuite votre historique de commandes.

Bonnes pratiques pour changer ses mots de passe en toute sécurité

Bien que ces méthodes offrent différents niveaux de sécurité, privilégiez toujours la plus sûre possible. Préférez les méthodes qui évitent d’exposer les mots de passe en clair. L’utilisation de mots de passe robustes est indispensable, et vous devez effacer l’historique des commandes ou de PowerShell si des informations sensibles ont été utilisées.

Conclure

L’utilisation de PowerShell pour modifier les mots de passe des comptes locaux offre un contrôle total et permet de gagner un temps précieux par rapport à la navigation manuelle dans l’interface graphique. La combinaison Get-LocalUser + Set-LocalUser constitue généralement le meilleur compromis entre sécurité et simplicité d’utilisation, mais WMI et les commandes directes restent utiles selon le contexte. Veillez simplement à exécuter PowerShell en tant qu’administrateur et à prendre en compte les règles de sécurité lors de la création de scripts de gestion des mots de passe.

Résumé

  • Exécutez PowerShell en tant qu’administrateur pour obtenir les autorisations nécessaires.
  • Utilisez si possible les méthodes recommandées, notamment celles qui utilisent des cordes de sécurité.
  • Évitez d’utiliser les mots de passe en clair dans les scripts, sauf en cas d’absolue nécessité.
  • Effectuez des tests de connexion après avoir apporté des modifications afin de vous assurer que tout fonctionne correctement.

J’espère que ça aidera.