Skip to content

Est. 2011ยทMicrosoft Partner 7033487ยทDelivery under 3 minยทSupport 7 days a week

Your vault is empty.

Free Fix Event ID 1006

Event ID 1006: Group Policy cannot authenticate to Active Directory

12 min read Updated October 4, 2026 Windows Server: AD, DNS & Group Policy

Fix it now

Microsoft publishes 1006 as “Windows could not authenticate to the Active Directory service on a domain controller. (LDAP Bind function call failed). Look in the Details tab for error code and description.” A domain controller was found, so this is not connectivity: the machine’s own credentials, its clock, or a right on the domain controllers is the problem.

Run these on the failing machine, in an elevated Windows PowerShell session

Test-ComputerSecureChannel -Verbose
w32tm /query /status
gpupdate /force
  1. Read the LDAP error in the Details tab of the 1006 entry. 81 is LDAP_SERVER_DOWN and 82 is LDAP_LOCAL_ERROR, which Windows maps to a generic client-side directory error rather than to anything credential-specific.
  2. If the secure channel test returns false, repair that first with Test-ComputerSecureChannel -Repair -Credential * and restart. Group Policy cannot authenticate with a computer account that no longer matches.
  3. On a domain controller, run dcdiag /test:CheckSecurityError /ReplSource:<another dc>. Microsoft documents it as checking time skew, which must be under 300 seconds for Kerberos, the permissions on every naming context, connectivity to SYSVOL and NETLOGON, and the “Access this computer from the network” privilege.
  4. Run dcdiag /test:NetLogons on the same server, which checks that Administrators, Authenticated Users and Everyone hold that privilege.

Test-ComputerSecureChannel -Repair needs local Administrators membership on the machine being repaired, and a credential with rights over its computer object.

If the bind succeeds and gpupdate completes, you are done. If not, the next section covers what the bind needs and where it breaks.

Why it happens

Before it reads a single setting, the Group Policy service binds to LDAP on a domain controller as the computer account. That bind is normally Kerberos: the machine asks for a service ticket for the directory service, presents it, and gets a session. Every part of that has its own failure mode. The computer account must exist and its password must match, a key distribution centre must be reachable, the clocks must be close enough, and the service principal name must match the server actually being contacted.

The LDAP result code in the Details tab narrows it, though less than people assume. 81 is LDAP_SERVER_DOWN, which Windows maps to ERROR_BAD_NET_RESP: the server could not be reached for the bind. 82 is LDAP_LOCAL_ERROR, which Windows maps to ERROR_DS_GENERIC_ERROR. That is a generic client-side failure, not a credential-specific one, so an 82 is a starting point rather than an answer.

Event 1097 is the companion worth knowing: Microsoft publishes it as “Windows could not determine the computer account to enforce Group Policy settings. This may be transient. Group Policy settings, including computer configuration, will not be enforced for this computer.” Where 1006 says the bind failed, 1097 says the machine could not establish its own identity at all, and the two together point firmly at the computer account rather than at the network.

Event 40961 turns up in the same window on many of these machines. Microsoft does not publish a meaning for it, so read it for the service name it carries rather than for the number: it tells you which service the machine was reaching for when the secured connection could not be established, which is usually enough to say whether one domain controller is at fault or all of them are.

The computer account no longer matches the directory

You have this one if Test-ComputerSecureChannel returns false, and the machine was recently reverted, restored or switched on after a long time off.

  1. Repair it in place: Test-ComputerSecureChannel -Repair -Credential *, or nltest /sc_reset:<domain>.
  2. Restart the machine, which is the step Microsoft’s own procedure ends with.
  3. Run gpupdate /force and confirm the 1006 entries stop.

Clock skew between the machine and the domain

You have this one if 1006 arrives instantly and repeatedly, and w32tm /query /status shows a large offset or a source of Local CMOS Clock.

  1. Resynchronise the client: w32tm /resync. The documented parameters are /computer, /nowait, /rediscover and /soft; there is no /force.
  2. On a virtual machine, stop it taking time from the hypervisor host so the domain hierarchy owns its clock.
  3. Confirm with dcdiag /test:CheckSecurityError /ReplSource:<dc>, which tests the skew against the 300-second Kerberos limit.

Do not correct a domain-wide drift by setting clocks on individual domain controllers. Fix the source the hierarchy uses and let members follow.

A user right on the domain controllers has been stripped

You have this one if Every client begins failing at roughly the same time, shortly after a security baseline was applied.

  1. On a domain controller, run dcdiag /test:NetLogons. Microsoft documents it as verifying that Administrators, Authenticated Users and Everyone have the “access this computer from the network” privilege on the domain controller.
  2. Run dcdiag /test:CheckSecurityError /ReplSource:<dc>, which checks the same privilege alongside naming context permissions.
  3. Restore the defaults in the policy that removed them, then retest from a client.

That privilege controls far more than Group Policy. If it has been emptied, expect file share access, replication and management tooling to be failing too, whether or not anyone has reported it yet.

The domain controller’s own identity is wrong

You have this one if Policy works against one domain controller and fails consistently against another.

  1. Find which domain controller the client is using: nltest /dsgetdc:<domain> /avoidself /try_next_closest_site from a domain controller, or the plain form from a client.
  2. On the suspect server, run dcdiag /test:MachineAccount. Microsoft documents it as checking that the computer account exists, sits in the Domain Controllers container, has the correct account control flags and server reference attributes, and carries the minimum service principal names.
  3. If it reports a problem, /FixMachineAccount is Microsoft’s preferred repair; /RecreateMachineAccount exists and is documented as not recommended.
  4. Run dcdiag /test:Advertising to confirm the server is advertising the roles it should.

Directory hardening the client cannot meet

You have this one if Binds began failing after the domain controllers were hardened, and the affected machines are older builds or third-party appliances rather than current Windows clients.

  1. Establish what the domain controllers now require and what the failing clients can actually do, before changing anything.
  2. Bring the clients up to a build that meets the requirement rather than relaxing the requirement on the domain controllers.
  3. Where an appliance genuinely cannot comply, isolate it and plan its replacement.

Lowering a directory security requirement to make an error go away weakens protection for every client at once, not only the one that cannot comply.

Full reference

The codes

Code Status What it is
Event 1006 Published by Microsoft The processing of Group Policy failed. Windows could not authenticate to the Active Directory service on a domain controller. (LDAP Bind function call failed)
Event 1097 Published by Microsoft Windows could not determine the computer account to enforce Group Policy settings. This may be transient
Event 40961 Not published Read it for the service name it carries. It tells you what the machine was reaching for, not why it failed
LDAP 81 Published by Microsoft LDAP_SERVER_DOWN, mapped by Windows to ERROR_BAD_NET_RESP
LDAP 82 Published by Microsoft LDAP_LOCAL_ERROR, mapped by Windows to ERROR_DS_GENERIC_ERROR – a generic client-side error

An LDAP 82 does not mean Kerberos. It maps to a generic directory error on the client side, and the useful next step is to establish the machine’s own identity and clock rather than to start reading ticket caches.

The dcdiag tests that fit this event

Test What Microsoft says it checks
/test:CheckSecurityError Not run by default. With /ReplSource it checks time skew, which must be less than 300 seconds for Kerberos, permissions on all naming contexts, connectivity to SYSVOL and NETLOGON, the Access this computer from the network privilege, and that the DC’s computer object is current
/test:NetLogons That the shares can be read without security errors, and that Administrators, Authenticated Users and Everyone hold the network access privilege on the DC
/test:MachineAccount That the DC’s computer account exists in the Domain Controllers container with correct flags, server reference attributes and minimum service principal names. Repairs with /FixMachineAccount
/test:Advertising That the DC advertises itself in the roles it should perform. Fails if Net Logon has stopped
/test:Connectivity That the directory server agent and DNS are registered and reachable

Working out whether it is one domain controller or all of them

  1. Establish which domain controller the failing client is using. Do not assume it is the nearest one.
  2. Point a test client at a different domain controller and repeat.
  3. If only one server fails, run the machine account and advertising tests on it.
  4. If every server fails for every client, something changed centrally: a user right, a directory security requirement, or the time source the hierarchy uses.
  5. If every server fails for one client, the client’s own account or clock is the problem.

Repairing rather than rejoining

Rejoining the domain does clear most of these, and it is a poor first move. Leaving to a workgroup and rejoining under the same name typically produces a new object with a new security identifier, so group memberships and anything keyed to the old identifier are lost. Microsoft’s documented repairs keep the object: Test-ComputerSecureChannel -Repair on the client, and dcdiag /test:MachineAccount /FixMachineAccount on a domain controller whose own account is at fault. Try both before you take the machine out of the domain.

The privilege that breaks more than policy

If your investigation ends at the “Access this computer from the network” privilege on the domain controllers, widen it before you close the ticket. Microsoft’s own NetLogons test looks for three principals holding it, and a baseline that removed them will be breaking file share access, replication and remote management at the same time. Those failures are quieter than a Group Policy event, so they are often reported days later as separate problems by different people.

Hardening you should not undo

Where the failing clients are old builds or appliances that cannot meet a directory security requirement the domain controllers now enforce, the temptation is to relax the requirement until the errors stop. That trades a visible problem for an invisible one across the whole domain, and it is not a fix so much as a decision to accept a weaker posture on every client to accommodate the weakest. Isolate what cannot comply, plan its replacement, and keep the requirement.

Every code this article covers

Code What it points at Source
Event ID 1006 Group Policy processing failed: Windows could not authenticate to the Active Directory service on a domain controller, the LDAP bind call failed. The code and description are in the event’s Details tab Microsoft Learn
Event ID 1097 Group Policy processing failed: Windows could not determine the computer account to enforce Group Policy settings. Microsoft notes this may be transient Microsoft Learn
Event ID 40961 Logged when a secured connection with a named service could not be established. Not published by the vendor; read it for the service name it carries not published by the vendor
LDAP 81 LDAP_SERVER_DOWN, which Windows maps to ERROR_BAD_NET_RESP: the directory server could not be reached for the bind Microsoft Learn
LDAP 82 LDAP_LOCAL_ERROR, which Windows maps to ERROR_DS_GENERIC_ERROR: a generic client-side error, not a credential-specific one Microsoft Learn

Confirm the fix worked

  1. Test-ComputerSecureChannel returns true without the repair switch.
  2. gpupdate /force completes and no new 1006 appears.
  3. dcdiag /test:CheckSecurityError /ReplSource:<dc> reports no errors on the domain controller involved.
  4. dcdiag /test:NetLogons succeeds on that domain controller.
  5. w32tm /query /status on the client shows a small offset against a domain time source.

Questions people ask about this

Is this a DNS problem?

Not usually. Event 1006 means a domain controller was found and the LDAP bind was refused. A failure to find a domain controller in the first place produces different events, which is why 1006 sends you to credentials, clocks and rights rather than to name resolution.

Does an LDAP 82 mean Kerberos failed?

No. Microsoft maps LDAP 82, LDAP_LOCAL_ERROR, to ERROR_DS_GENERIC_ERROR – a generic client-side error. It narrows the failure to the client’s own side of the bind and no further.

Will rejoining the domain fix it?

Often, and at a cost. Rejoining under the same name usually produces a new computer object with a new security identifier, so memberships and anything keyed to the old identifier are lost. Repair the secure channel first.

How far out can the clock be?

Microsoft’s domain controller security check tests that the skew between servers is less than 300 seconds for Kerberos. Treat anything approaching that as your cause.

Every client started failing at once. Where do I look?

At what changed centrally. Microsoft’s NetLogons test looks for Administrators, Authenticated Users and Everyone holding the network access privilege on the domain controller, and a baseline that removed them produces exactly this pattern – along with other failures that will be reported separately.

Related error codes

Was this article helpful?

Your feedback helps us improve our documentation.

Related articles

License Error NTLM authentication blocked by policy: reading the NTLM operational log License Error Error 8531 Directory Service cannot start: NTDS database and disk failures License Error Error 8557 machine account quota exceeded: no more computers may join License Error Error 8606 lingering objects: clearing stale AD data that blocks replication
โ† Back to Knowledge Base