Skip to content

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

Your vault is empty.

License Error Event ID 2601

Event ID 2601: Exchange cannot contact a domain controller or global catalog

12 min read Updated October 4, 2026 Exchange Server

Fix it now

MSExchange ADAccess events in the 2000 range are Exchange reporting on its own view of Active Directory, and 2601 appears when it has no usable directory server to work with. Microsoft publishes no description for these event IDs, so read the event’s own text and then check the three things that actually decide it: site membership, DNS, and whether a global catalog serves that site.

Elevated Command Prompt on the Exchange server. Substitute your own domain

nltest /dsgetsite
nltest /dsgetdc:contoso.com /GC /FORCE
ipconfig /all
Get-ExchangeServer | Format-List Name,Site
  1. Read nltest /dsgetsite first. If the site is not the one you expect, the Exchange server’s subnet is missing from Active Directory Sites and Services and everything else follows from that.
  2. Read the nltest /dsgetdc result. /GC restricts the answer to global catalogs and /FORCE makes it query DNS rather than the cache, so a failure here is real rather than stale.
  3. Confirm the server’s DNS servers are internal domain controllers hosting the Active Directory zone. A public resolver anywhere in that list breaks locator queries intermittently.
  4. In the Application log, find the most recent Event ID 2080 and read its own text: it lists the servers Exchange discovered and how each one answered.
  5. After correcting site data or DNS, restart the Microsoft Exchange Active Directory Topology service and wait for a fresh 2080 before judging the result.

If you need Exchange bound to one named controller while you work, use Set-ADServerSettings -PreferredServer dc01.contoso.com. It is session-scoped and it undoes itself when you close the shell.

If Exchange finds its directory again and the services settle, stop here. If not, the next section covers what Exchange is actually looking for.

Why it happens

When the Active Directory Topology service starts, it works out which Active Directory site the server belongs to from its IP address and the subnet objects defined in Sites and Services. It then finds the domain controllers serving that site, tests them, and builds a list it is willing to use. It repeats that discovery on a timer, so directory changes are picked up without a restart – and so recovery after an outage is not instant.

The detail that catches people out is scope. Exchange uses controllers and global catalogs in its own site, and reaches beyond it only where site coverage or site links make another site’s controllers available. Ten domain controllers in the forest are no help at all if none of them serves the site Exchange sits in, and a site is decided by a subnet object that somebody has to have created.

One caveat before you go event-hunting. Microsoft publishes no description for event 2601, 2604, 2114, 4027 or 2080. That does not make them useless – each event’s own description field carries the process, the server and, in the case of 2080, the discovery result – but it does mean you should read the entry rather than look up the number. An article that tells you exactly what 2601 means is telling you something the vendor has not published.

What you can rely on is the shape of the dependency. Almost every Exchange service waits on the topology service, so a directory problem produces a batch of service failures rather than one, and fixing the directory fixes all of them at once. If you find yourself restarting six Exchange services in sequence, stop and go and look at DNS and Sites and Services instead.

The Exchange server’s subnet is not defined in Sites and Services

You have this one if nltest /dsgetsite returns a site you did not expect, or the discovery event lists controllers that live somewhere else entirely.

  1. Open Active Directory Sites and Services and check whether a subnet object covers the Exchange server’s IP address.
  2. Create the missing subnet object and associate it with the correct site.
  3. Restart the Microsoft Exchange Active Directory Topology service so the server rediscovers.
  4. Confirm with nltest /dsgetsite and with Get-ExchangeServer | Format-List Name,Site.

An undefined subnet is silent everywhere else in the estate, which is why it usually surfaces first as an Exchange problem and gets blamed on Exchange.

DNS on the Exchange server points somewhere unhelpful

You have this one if nltest /dsgetdc:<domain> /FORCE cannot find a controller, and the server’s DNS list includes something that is not a domain controller.

  1. Set the server’s DNS to internal domain controllers only. A public resolver in the list breaks locator queries in ways that come and go.
  2. Flush the resolver cache with ipconfig /flushdns and retry with /FORCE so the query goes to DNS rather than the cache.
  3. On the domain controllers, confirm the Netlogon service is registering its records and that dynamic updates are permitted in the zone.
  4. Restart the topology service on the Exchange server once DNS is right.

No global catalog serves the site

You have this one if nltest /dsgetdc:<domain> /GC fails while the same query without /GC succeeds.

  1. In Sites and Services, open the NTDS Settings of a controller in that site and enable the global catalog role.
  2. Allow time for it to finish building and start advertising before testing again.
  3. Alternatively confirm that site coverage from a neighbouring site is intended and working, so Exchange has a catalog it may use.
  4. Restart the topology service and confirm the new catalog appears in the next discovery event.

The controllers are reachable by name but not by port

You have this one if Name resolution works, the controllers are listed, and Exchange still reports nothing usable.

  1. Test the paths from the Exchange server: LDAP on 389, global catalog on 3268, Kerberos on 88, and the RPC endpoint mapper on 135 with its dynamic range.
  2. Check controller health with dcdiag and replication with repadmin /replsummary.
  3. Test from the Exchange server’s own subnet. A path that works from the server room tells you nothing about a server in a DMZ.
  4. Restart the topology service once the path is genuinely open.

The site has one domain controller and it is unavailable

You have this one if Everything works until that controller reboots for patching, then Exchange fails for exactly as long as it is down.

  1. Bring the controller back and confirm Exchange recovers on its own within the discovery interval rather than intervening.
  2. As a stopgap while it is down, bind a shell to a controller in another site with Set-ADServerSettings -PreferredServer dc02.contoso.com so you can at least manage the organisation.
  3. Arrange site coverage from a site that has a controller, or add a second controller to this site.
  4. Schedule domain controller patching so that a single-controller site is never left without one during business hours.

Do not go looking for a registry value to pin a controller permanently. Set-ADServerSettings is the documented, reversible way to do it, and a permanent pin becomes the next single point of failure because Exchange stops looking for alternatives.

Full reference

Reading the discovery event

What the events and commands show Where the fault is
The discovery event lists no servers at all Discovery found nothing: DNS, or site membership
Servers listed, but none of them answering for the roles needed Found but unreachable: ports, or the controllers themselves
nltest /dsgetdc /GC fails while the plain query succeeds No global catalog available to this site
Servers listed that belong to another site This server’s subnet is missing from Sites and Services
Fails only during the patch window The site has one domain controller and it reboots
Every Exchange service fails together The topology service is at the front of the queue. Fix the directory, not the services

Commands that answer the question

Command What it tells you
nltest /dsgetsite Which Active Directory site Windows believes this server is in
nltest /dsgetdc:<domain> Queries DNS for domain controllers and contacts each one to check connectivity
nltest /dsgetdc:<domain> /GC Restricts the answer to servers designated as global catalogs
nltest /dsgetdc:<domain> /FORCE Runs the query against DNS instead of reading the cache
repadmin /replsummary Which controllers are failing to replicate, and by how much
Get-ExchangeServer | Format-List Name,Site Which site Exchange thinks it is in, which should match nltest
Set-ADServerSettings -PreferredServer <fqdn> Binds this shell session to one named domain controller

Ports Exchange needs to a domain controller

Service Port
LDAP 389 TCP and UDP
Global catalog LDAP 3268 TCP
Kerberos 88 TCP and UDP
RPC endpoint mapper 135 TCP, plus the dynamic port range it hands out
DNS 53 TCP and UDP

A firewall between Exchange and its domain controllers is a design that has to be maintained rather than set up once. The dynamic RPC range in particular is the one that gets missed, because the endpoint mapper answers on 135 and everything looks fine until an actual call is made.

Five event IDs, none of them published

Events 2601, 2604, 2114, 4027 and 2080 all appear in this investigation and Microsoft publishes a description for none of them. Read them for their content: which process wrote the entry, which server is named, and in the case of the discovery event, the table of servers and how each answered. Do not act on a number alone, and be sceptical of any source that assigns a confident meaning to one of them.

Restarting the Microsoft Exchange Active Directory Topology service forces a fresh discovery, which saves waiting for the timer. It also restarts the services that depend on it, so treat it as a change rather than a query.

Design decisions that stop this recurring

  • Define every subnet in Sites and Services, including the ones nobody thinks matter. An undefined subnet is invisible until Exchange trips over it.
  • Put at least two domain controllers in any site that holds an Exchange server, or arrange and test site coverage from a neighbouring site.
  • Give Exchange servers internal DNS only, and check that after every network change rather than after every outage.
  • Do not install Exchange on a domain controller. It complicates patching and recovery and turns two separate outages into one.
  • Stagger domain controller reboots so that no site loses all of its controllers at once.

When a licence is the actual fix

Most of this costs nothing. Subnet definitions, DNS settings and the global catalog role are configuration changes on servers you already run, and none of them needs a purchase. The exception is the last cause on the list: if the honest answer is that the site holding your Exchange server has exactly one domain controller, no amount of configuration removes the outage that happens every time it reboots. A second domain controller is the durable fix, and it is another instance of Windows Server to license. A domain controller is a modest workload that Windows Server 2025 Standard covers comfortably, and it can run on the virtualisation you already have. Arco supplies Windows Server 2025 Standard and can check how your existing licensing and client access licence position covers an additional server before you order anything.

Every code this article covers

Code What it points at Source
Event ID 2601 An MSExchange ADAccess entry written when Exchange has no usable directory server. Microsoft publishes no description; read the process and server named in the event text not published by the vendor
Event ID 2604 An MSExchange ADAccess entry seen alongside global catalog availability problems. No published description not published by the vendor
Event ID 2114 An MSExchange ADAccess entry about the topology discovery process. No published description not published by the vendor
Event ID 4027 An MSExchange ADAccess entry about a selected directory server. No published description not published by the vendor
Event ID 2080 The ADAccess entry that prints the discovery result, including the servers found and how each answered. No published key to the flags; read the entry itself not published by the vendor

Confirm the fix worked

  1. nltest /dsgetsite returns the site you expect for that server.
  2. nltest /dsgetdc:<domain> /GC /FORCE returns a global catalog without an error.
  3. Get-ExchangeServer | Format-List Name,Site agrees with nltest.
  4. A fresh discovery event appears in the Application log listing the controllers you expect.
  5. Test-ServiceHealth shows the Exchange services running, and a directory-dependent command such as Get-Mailbox -ResultSize 5 completes.

Questions people ask about this

Can Exchange use a domain controller in another site?

Only where site coverage or site links make one available to the Exchange server’s site. Exchange prefers local controllers because directory access is chatty, and crossing a slow link degrades everything from mail flow to the management shell.

Does this mean I have to buy something?

Usually not. Subnet definitions, DNS settings and the global catalog role are free changes. A licence only enters the picture if you decide you need another domain controller, which is a capacity decision rather than a fault.

Should I install Exchange on a domain controller to avoid this?

No. It complicates patching and recovery, it makes a directory problem and a mail problem the same outage, and it removes the separation that lets you reboot one without the other.

How long does Exchange take to notice a controller has come back?

Discovery runs on a timer, so recovery is not instant. Restarting the Active Directory Topology service forces a fresh discovery if you do not want to wait, but it restarts the dependent services too.

Can I pin Exchange to one domain controller permanently?

Set-ADServerSettings -PreferredServer does it for a shell session, which is the right scope for troubleshooting. Making it permanent turns that controller into the next single point of failure, because Exchange stops looking for alternatives.

Related error codes

Was this article helpful?

Your feedback helps us improve our documentation.

Related articles

License Error MigrationPermanentException: the move failed in a way retrying cannot fix License Error Error 1638: another Exchange version blocks this cumulative update install Free Fix Event ID 41 in MSExchange OWA: something went wrong loading OWA or ECP License Error 535 5.7.139 authentication unsuccessful: SMTP AUTH submission failures
โ† Back to Knowledge Base