Fix ERROR_ILL_FORMED_PASSWORD (0X0000052C) – Password Update Failure
This error pops up when Windows can't update a password, usually because the new password doesn't meet complexity rules or there's a lockout. Here's how to fix it.
Cause 1: New Password Doesn't Meet Complexity Requirements
This is the most common trigger. You're changing a password—maybe on a domain-joined Windows 10 machine or a local account on Server 2019—and you get the 0X0000052C error right after hitting Enter. The password you typed looks fine to you, but Windows disagrees. The real issue is usually that the new password violates the password policy set on the machine or domain.
Here's what Windows checks:
- Minimum length (usually 8 characters, but can be set higher)
- Must include characters from at least three of these categories: uppercase, lowercase, digits, and special characters (like !, @, #)
- Can't contain the user's account name or parts of the full name
- Can't be a password you've used recently (password history—often 10-24 previous passwords are stored)
Fix it: Try a password like Myp@ssw0rd2024! — that hits all the rules. If you're on a domain, ask your admin for the exact policy. You can also check the local policy on a standalone machine:
- Press Win + R, type
secpol.msc, and hit Enter. - Go to Account Policies > Password Policy.
- Look at Minimum password length, Password must meet complexity requirements, and Enforce password history.
After changing the password, you should see the update succeed without the error. If it doesn't, try a password that's completely different from the last one—sometimes the history check trips people up.
Cause 2: User Account Is Locked or Disabled
This one's sneaky. You're trying to update a password, but the account itself is locked out from too many bad login attempts. The error code 0X0000052C can pop up in this case, even though the password you typed is valid. I've seen this happen on Remote Desktop servers (like Windows Server 2016 or 2019) where someone's automated script keeps hitting the wrong password.
Fix it: Check the account status:
- Open Command Prompt as Administrator. Press Win + X, then choose Terminal (Admin) or Command Prompt (Admin).
- Type
net user username(replaceusernamewith the actual account name). - Look for Account active—it should say Yes. If it says No, the account is disabled.
- Also check Account expires. If it's set to a past date, the account is expired.
To unlock the account:
net user username /active:yes
If it's locked due to bad passwords, you'll see Lockout in the same output. In that case, run:
net user username /active:yes
Then try the password update again. After unlocking, you should be able to set a new password without the error.
Cause 3: Password Contains Invalid Characters or Is Too Long
This one's less common but still worth checking. Windows has a hard limit on password length: 256 characters for local accounts, but many systems cap it lower. Also, some characters are banned—like " (double quotes) or \ (backslash)—because they break the command line or the Active Directory database.
I ran into this once on a Windows 11 machine where a user pasted a password from a password manager that included a double quote. The error showed up immediately, and the user swore the password was correct. Removing the quote fixed it.
Fix it: Use only these characters: A-Z, a-z, 0-9, and the common specials: ! @ # $ % ^ & * ( ) - _ + = [ ] { } ; : , . / ? ~ `. Avoid spaces, double quotes, backslashes, and any non-ASCII characters (like emoji or accented letters). Keep the password under 128 characters to be safe.
If you're resetting via command line, use this syntax:
net user username MyN3wP@ssw0rd
Make sure the password is in plain text with no extra spaces. After the command runs, you should see The command completed successfully. If not, double-check the character list above.
Quick-Reference Summary Table
| Cause | What to Check | Fix |
|---|---|---|
| Password complexity | Length, character types, history, name parts | Use a password like Myp@ssw0rd! or check policy in secpol.msc |
| Account locked or disabled | Run net user username to see status | Run net user username /active:yes |
| Invalid characters or length | Avoid double quotes, backslashes, spaces, emoji | Use only standard ASCII specials; keep under 128 chars |
Was this solution helpful?