Understanding Global Catalog (Active Directory)

In addition to the 5 FSMO roles in Active Directory, there is the sixth (unofficial) domain controller role — Global Catalog (GC). Unlike FSMO roles, any controller in a domain can host a Global Catalog role. This role doesn’t need to be unique within an Active Directory domain or forest. However, the Global Catalog is the most important DC role from a practical point of view.

What is the Global Catalog?

A Global Catalog server is a domain controller that stores copies of all Active Directory objects in the forest. It stores a complete copy of all objects in the directory of your domain and a partial copy of all objects of all other forest domains. Thus, the Global Catalog allows users and applications to find objects in any domain of the current forest by searching for attributes included in GC.

A typical domain controller stores a complete replica of objects in its own domain, but not for other domains in the forest.

The Global Catalog contains a basic (but incomplete) set of attributes for each forest object in each domain (Partial Attribute Set, PAT). The GC receives data from all the domain directory partitions in the forest, they are copied using a standard AD replication service. The set of attributes that are copied to the Global Catalog is defined in the AD schema. If necessary, you can configure additional attributes that will be replicated to the GC using the Active Directory Schema mmc snap-in.


Imagine that a workstation has requested information about an object from another domain in the current AD forest. The computer contacts the nearest GC with a request to provide it with information about this object. The GC server can perform one of the following things:

  • Immediately return the necessary information to the workstation (if this information is stored on the GC server);
  • Redirect the query to the correct Domain Controller, where this information will definitely be located. Use GC search to understand which domain controller to redirect the request to.

To add an attribute to the GC, you must select the option Replicate This Attribute to the Global catalog. As a result, the value of the isMemberOfPartialAttributeSet attribute parameter is set to True.

global catalog server

You can use PowerShell to find domain controllers with GC roles in the domain. First, import the Windows PowerShell Active Directory Module into your current sessions:

Import-Module ActiveDirectory

To find the list of DCs that contains the Global Catalog role in the current forest, run the command:

Get-ADForest |select -ExpandProperty GlobalCatalogs |Format-Table

active directory global catalog

You can check if the current DC you are logged on has the global catalog role enabled:

Get-ADDomainController | ft Name,IsGlobalCatalog

Or to check GC role in all DC in an AD site:

Get-ADDomainController-Filter {Site -eq 'New-York'}} | FT Name,IsGlobalCatalog

Or use the dsquery command-line tool. To list all GC servers in the current Active Directory forest:

dsquery server -forest –isgc

Finding GC servers in a specific forest domain:

dsquery server –domain theitbros.com –isgc

The first GC server was automatically created on the first domain controller in the forest when you promote DC during installing the Active Directory Domain Services role. In the case of a single AD site, even if it contains multiple domains, a single Global Catalog server is usually sufficient to process Active Directory requests. In a multi-site environment (in order to optimize network traffic and reduce service delays) consider adding GC servers to ensure a quick response to search queries and fast logon. Also, at least one GC server must be present on each AD site where Exchange is supposed to be installed.


You can assign additional domain controllers as GC by selecting the Global Catalog option in the “Active Directory Sites and Services” snap-in (dssite.msc).

The global catalog server is used for the following purposes:

  • Object search — if a user searches for an object by specifying All directory parameter in the query, this LDAP query is redirected to the port TCP/3268 (or TCP/3269 for LDAP over SSL) and sent to the nearest GC server. If for any reason there is no GC server in the domain, users and applications won’t be able to perform searches across the AD forest;
  • Authentication — the GC server is the source of authentication at the time the user logs on to the domain. The global catalog server resolves the user name if the authenticating domain controller does not have information about the user’s account (the UserPrincipalName attribute is used in this case);
  • Verifying membership in universal groups in a multi-domain environment — in the verification process, the domain controller verifies the authenticity of the user, after which the user receives authorization data to access the resources. To provide this information, the domain controller retrieves the security identifiers (SIDs) for all security groups that the user is a member of and adds these identifiers to the user’s access token. Because universal groups can contain user accounts and groups from any domain in the forest, the group membership in them can only be resolved by the GC Server that has catalog information at the forest level;
  • Checking references to objects within the forest — Domain controllers use a Global Catalog to validate references to objects in other domains in the forest. That’s why if the domain controller contains an object with an attribute, that contains a reference to an object in another domain — the domain controller checks the link by establishing a connection to the Global Catalog server;
  • Exchange Address Book Search — when users want to find a person within the organization in Outlook, they usually search through the global address list (GAL). The GAL is a list that is created by Exchange as a result of an LDAP query to search for all mail-enabled objects — users, contacts, and distribution groups. When a user tries to open an address book in Microsoft Outlook, or writes an email and enters a name or recipient address in the To field, Outlook uses the GC Server specified by the Exchange server. Exchange mail servers use Active Directory and DNS to locate Global Catalog servers.

How to Optimize Global Catalog Server Placement?

For resiliency purposes, it is important to keep at least a few domain controllers with the Global Catalog role. It will be better if each domain has a minimum of one GC. However, it is better to make all DCs in the forest as Global catalog servers. This will also have a positive effect on load balancing. Also, it is important to notice that from now you won’t have to worry about the infrastructure master FSMO role.

If you can’t make all DCs the Global Catalog, then make sure the infrastructure master FSMO role do not host on the GC Server. Otherwise, it will stop its functioning (phantom records will not be created/changed) and as a consequence — you will get irrelevant data in AD.

If there are no Global Catalog servers available, users can not log in, and the Exchange Server can’t send and receive emails. That’s why the Global Catalog is the most important role of the domain controller. Without GC role the functioning of Active Directory is almost impossible.

How to Enable/Disable the Global Catalog Role on a Domain Controller?

You can enable the Global Catalog role on a domain controller in several ways:

  • Using the graphical Active Directory Sites and Services mmc console;
  • Using PowerShell;
  • Using the dsmod.exe tool.

Run the mmc snap-in “Active Directory Sites and Services” (Start > Windows Administrative Tools, or run the dssite.msc command).


global catalog

Expand the Sites section and find the AD site that contains your domain controller. Expand it, right-click on NTDS Settings and then select Properties.

Set the Global Catalog checkbox on the General tab to enable the GC role, or uncheck it to disable it. Click OK to save your changes.

global catalog active directory

Once promoted to a GC server, an event with Event ID 1110 should appear in the Directory Service section of Event Viewer:

Event Source: NTDS General

Event Category: Replication

After successful installation of the role, Event ID 1119 will appear:

This domain controller is now a global catalog

In this case, the value of the Global Catalog Promotion Complete registry setting under the HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters key registry should be 1.

ad global catalog

You can make a read-only domain controller a Global Catalog server. A Global Catalog (GC) server is a read-only copy of a partial set of attributes of all domains in an AD forest, so you can use this role on a Read-Only Domain Controller (RODC). But some applications will not work correctly with a GC server running on an RODC. That’s why it’s important to make sure your apps support a GC server running on an RODC.


You can enable the Global Catalog role on a DC using the PowerShell command:

Set-ADObject -Identity (Get-ADDomainController DC03).ntdssettingsobjectdn -Replace @{options='1'}

To disable the GC role, use the command:

Set-ADObject -Identity (Get-ADDomainController DC02).ntdssettingsobjectdn -Replace @{options='0'}

Hint. Each Active Directory domain must have at least one DC with the Global Catalog role. Therefore, you won’t be able to disable the GC option if it’s the only domain controller with this role.

These commands can be used to move the global catalog server functionality from one domain controller to another.

You can also use the dsmod.exe command to enable the GC role. For example:

dsmod server "CN=dc03,OU=USA,DC=theitbros,DC=com" -isgc yes

The amount of time it takes to publish the Global Catalog in a forest depends on the replication topology. The domain controller doesn’t publish the DNS record that has become a global catalog server until it receives all partial domain directory partitions through AD replication.

You can check the registration of a Global Catalog server in DNS by using the dnsmgmt.msc snap-in. Make sure you have an SRV record named _gc for your DC in the _tcp forward lookup zone.

global catalog role

Note that the Active Directory DNS zone has a _msdcs container that contains infrastructure AD DNS records. There is a separate gc._msdcs… entry in the AD root domain namespace for Global Catalog servers. This entry contains a list of all GCs in the forest. You can view the records of servers with the Global Catalog role in a domain using the built-in nslookup tool:

nslookup gc._msdcs.theitbros.com

Clients use these DNS records to look up Global Catalog servers in the Active Directory domain.

After activating the Global Catalog role on DC, you can check its readiness. For this, the ldp.exe utility is used. Run the tool, select Connection > Connect > specify the DC name and a 389 as a connection port. Click Ok.

global catalog ad

Verify the isGlobalCatalogReady: TRUE value in the LDP window. This means that your GC is ready.

Also, you can check GC readiness from the command prompt:

nltest /server:dc01 /dsgetdc:test.com

dc global catalog

Check for a GC value in the Flags field.

I enjoy technology and developing websites. Since 2012 I'm running a few of my own websites, and share useful content on gadgets, PC administration and website promotion.


  1. By far the best explanation I’ve ever read about GC
    finally understood what it’s about!
    short, simple and to the point!

    Thank YOU!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.