3.9. Finding the Closest Domain Controller
Problem
You want to find the closest domain controller for a particular domain.
Solution
Using a command-line interface
The following command finds the closest domain controller in the
specified domain (<DomainDNSName>
).
By default, it will return the closest DC for the computer
nltest
is being run from, but you can optionally
use the /server
option to target a remote host.
You can also optionally specify the /site
option
to find a domain controller that belongs to a particular site.
> nltest /dsgetdc:<DomainDNSName>
[/site:<SiteName>
] [/server:<ClientName>
]
Using VBScript
' This code finds the closest domain controller in the domain
' that the computer running the script is in.
' ------ SCRIPT CONFIGURATION ------
strDomain = "<DomainDNSName>
" ' e.g. emea.rallencorp.com
' ------ END CONFIGURATION ---------
set objIadsTools = CreateObject("IADsTools.DCFunctions")
objIadsTools.DsGetDcName( Cstr(strDomain) )
Wscript.Echo "DC: " & objIadsTools.DCName
Wscript.Echo "DC Site: " & objIadsTools.DCSiteName
Wscript.Echo "Client Site: " & objIadsTools.ClientSiteName
Discussion
The DC locator process as described in MS KB 314861 and MS KB 247811 defines how clients find the closest domain controller. The process uses the site topology stored in Active Directory to calculate the site a particular client is in. After the client site has been identified, then it is a matter of finding a domain controller that is either a member of that same site or that is covering ...
Get Active Directory Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.