What's Actually Happening Here
The error ERROR_NO_SUCH_MEMBER (0X0000056B) appears when you try to add or remove a member from a local group, but Windows can't resolve the account name to a valid SID. You'll see it most often on Windows Server when you run net localgroup "GroupName" DOMAIN\User /add or try the same through the GUI's Local Users and Groups snaplet.
The key nuance: Windows doesn't store usernames in local groups. It stores SIDs. The moment you type a name like CONTOSO\jsmith, the Local Security Authority (LSA) has to query the domain to translate that name into a SID. If that lookup fails, you get 0x56B. So the root cause is almost always a name resolution problem, not a permissions problem.
Below is the fix path in order of effort. Stop when the error is gone.
Fix 1: Quick Checks (30 Seconds)
Do these before anything else. Most "member does not exist" errors are just typos or case sensitivity surprises.
- Verify the exact group name. Run
net localgroupwith no arguments and read the list. Match the group name exactly, including spaces."Backup Operators"is not"BackupOperators". - Check the member's name. If it's a domain account, confirm the domain prefix is correct.
CONTOSO\jsmithvsCONTOSO\jsmith(trailing space) — that trailing space will cause this exact error. - Try the fully qualified UPN. Instead of
DOMAIN\user, useuser@domain.com. Some environments with multiple UPN suffixes fail on the old SAM name format. - Test with a local account. If you can add a local user (like
Administrator) to the same group without error, the problem is domain-side, not group-side.
If none of these work, move to the moderate fix.
Fix 2: Repair the Domain Trust or Network Path (5 Minutes)
When the LSA can't reach a domain controller, name resolution fails silently and you get 0x56B. This happens frequently after a domain controller migration or when the computer's trust relationship with the domain breaks.
Step 1: Test basic connectivity
ping dc01.contoso.com
nltest /dsgetdc:contoso.com
If the ping fails, check DNS. The client machine must point to a DNS server that can resolve the domain's LDAP SRV records. Run ipconfig /all and confirm the DNS server is right.
Step 2: Verify the trust relationship
nltest /sc_verify:contoso.com
If this returns ERROR_TRUSTED_RELATIONSHIP_FAILURE (or anything other than "success"), the machine's secure channel is broken. The fast fix is to rejoin the domain, but you can often avoid a reboot with this:
- Log on as a local admin (use
.\Administrator). - Run
powershellas admin. - Execute
Test-ComputerSecureChannel -Repair -Credential DOMAIN\YourAdminAccount. - Re-run the original group command.
The -Repair flag resets the machine account password without a full domain rejoin. It's saved me more than once after a DC restore.
Step 3: Check for stale cached credentials
Sometimes the account you're adding exists in AD but the local machine has a stale cached copy. Clear the credential cache:
cmdkey /list
cmdkey /delete:DOMAIN
Then retry. This is rare but happens after password resets.
Fix 3: Advanced Cleanup with PowerShell (15+ Minutes)
If the error persists, the group itself might contain a stale SID that's causing the LSA to choke when you try to modify it. Windows won't let you add a new member if the group's member list has unresolved SIDs that trigger a lookup failure.
Here's how to see what's really in the group. The net localgroup command shows names, but it hides SIDs that can't resolve. PowerShell exposes the raw data.
$group = Get-LocalGroup -Name "YourGroup"
$members = Get-LocalGroupMember -Group $group.Name
$members | Format-Table Name, SID, ObjectClass
Look for entries where Name is null or shows something like S-1-5-21-... instead of a friendly name. Those are orphaned SIDs — the domain account they referenced is deleted or moved.
To remove a specific stale member by SID:
Remove-LocalGroupMember -Group "YourGroup" -Member "S-1-5-21-123456789-1234567890-123456789-500"
Replace the SID with what you found. If PowerShell throws an error saying the member doesn't exist, you need to bypass the group's internal list directly. That's a deep dive, but here's the pragmatic workaround:
- Create a new group with the same permissions.
- Copy your valid members over using
Add-LocalGroupMember. - Delete the old group and rename the new one.
This sidesteps the corrupted member list entirely. I've used this trick on a 2019 file server that had a group with a deleted domain account from 2012. Took 20 minutes, solved the 0x56B permanently.
When All Else Fails: Reboot and Recheck
After any of the above, reboot the machine. The LSA caches lookup failures for a while. A restart clears that cache and forces a fresh attempt. It sounds basic, but the number of times a reboot fixes 0x56B after a DNS change is surprising.
Also, if the machine is a Domain Controller (DC), the fix is slightly different. You can't use net localgroup on a DC — it only works on member servers. On a DC, you'd use dsmod group or ADUC. But the error code is the same if the DC can't resolve a SID. In that case, the problem is usually a broken replication or a lingering object in AD. Check with repadmin /replsum.
Preventing This From Happening Again
The root cause is almost always operational hygiene. Use group policies to periodically clean stale memberships. A simple PowerShell script that enumerates all local groups on critical servers and flags SIDs that don't resolve to a name will catch these before they bite you. Run it monthly on your file servers and jump hosts.
And please — always use the UPN format (user@domain.com) in scripts, not DOMAIN\user. That format is less likely to hit SAM name resolution quirks across forest trusts. It's a tiny change that eliminates a whole class of 0x56B errors.