The Problem
A help desk admin resets a user's password from the Microsoft Entra admin center. The user signs in with the temporary password, changes it, and everything should sync back to on premises Active Directory through Entra Connect password writeback.
Except it doesn't.
The Entra ID audit log shows this instead:
Status: failure
Status reason: ADAdminActionRequired
ErrorMessage: Synchronization Engine returned an error hr=80231367,
message=Requesting user was denied access to perform the operation on a privileged account.
If you have never run into this before, the error message is genuinely confusing. The user is not an admin. They are not in Domain Admins. Nobody thinks of them as "privileged." So why is AD refusing the password change?
The Short Answer: adminCount and AdminSDHolder
The account was, at some point, a member of a protected group in Active Directory (Domain Admins, Enterprise Admins, Administrators, Account Operators, Backup Operators, Print Operators, Server Operators, or Schema Admins). Maybe it still is. Maybe it was removed from that group months or years ago and nobody thought about it again.
Active Directory has a background process called AdminSDHolder, which runs every 60 minutes. Its job is to protect privileged accounts from having their permissions accidentally weakened. Whenever it finds an account that is (or recently was) in one of those protected groups, it does two things:
- Sets
adminCount = 1on the object as a marker. - Disables permission inheritance on that object and replaces it with a fixed, hardcoded set of permissions.
The catch is that step 2 does not automatically reverse itself. Once adminCount is set to 1, the account keeps its stripped inheritance and hardcoded permission list indefinitely, even after the user is removed from every privileged group. Nothing puts it back the way it was unless someone does it manually.
Why This Breaks Password Writeback
Your Entra Connect AD DS connector account normally gets its permission to reset passwords through inherited permissions on the organizational unit where users live. That is how it can write passwords back for hundreds or thousands of users without anyone manually granting rights to each one individually.
Once an account's inheritance has been cut off by AdminSDHolder, it stops listening to those OU level permissions. If the connector account is not explicitly listed in that account's hardcoded permission set, it gets turned away, and Entra Connect reports it back up the chain as an access denial on a privileged account.
This is exactly the "Requesting user was denied access to perform the operation on a privileged account" message. It is not a bug. It is Active Directory correctly protecting what it still believes is a sensitive account.
How to Confirm This Is What's Happening
On the Entra Connect server, open Synchronization Service Manager, go to Operations, and check the Object Log for the affected user. A status of FilteredByTarget on PasswordSync operations is the tell.
On premises, check the account directly:
Get-ADUser -Identity <username> -Properties adminCount, memberOf |
Select-Object Name, adminCount, memberOf
If adminCount shows 1, you have found the cause.
This shows:
- adminCount :
1means it's flagged as privileged (or was previously); blank/0means normal - memberOf : the actual groups he's currently in right now
Important: only proceed if memberOf does NOT show any of these protected groups:
- Domain Admins
- Enterprise Admins
- Schema Admins
- Administrators
- Account Operators
- Backup Operators
- Print Operators
- Server Operators
How to Fix It
First, confirm the user is not currently in any protected group. If they are still legitimately privileged, leave this alone and reset their password on premises instead, since that separation is intentional.
If they are no longer privileged, clean it up in three steps.
1. Clear the flag:
Set-ADUser -Identity <username> -Clear adminCount
2. Re-enable inheritance on the object, Clearing adminCount alone does not restore permissions the object's ACL was already stripped by AdminSDHolder and stays broken until inheritance is manually re-enabled. Do this via GUI (safer, easier to verify):
- Open Active Directory Users and Computers (ADUC)
- Enable View → Advanced Features (if not already on)
- Right-click bwiley → Properties → Security tab → Advanced
- Check the box: "Enable inheritance" (at the bottom)
- Click Apply/OK
Wait for the next AdminSDHolder cycle (runs every 60 minutes by default)




