What Domain Controller Am I Connected To – CMD & PowerShell
Windows Domain Controller (DC) is a server that responds to security authentication requests within a Windows Domain (group of networked computers controlled by domain controller).
In this short note i will show how to find out which DC a computer is authenticated to using Windows CMD and PowerShell.
Cool Tip: Check if the computer is in a domain! Read more →
What Domain Controller Am I Connected To
Get domain controller name in Windows CMD:
Get domain controller name in PowerShell:
To find out the FQDN and IP address of the domain controller, you can use nslookup command that works both in Windows CMD and PowerShell:
Cool Tip: How to determine whether the current user is a Domain User account or a Local User account! Read more →
Find name of Active Directory domain controller
How can I find out the name/IP address of the AD domain controller on my network?
9 Answers 9
On any computer, that has DNS configured to use AD’s DNS server do:
Start -> Run -> nslookup
Replace DOMAIN_NAME with the actual domain name e.g. example.com. Read more here.
For a computer that is a member of a domain the Environment Variable LOGONSERVER contains the name of the DC that authenticated the current user. This is obviously not going to be all DC’s in a multi-DC environment but if all you want is a quick way to find the name of a Domain Controller then from a command shell:
Will return all Environment variables that start with «L» including the name of a DC.
An unmentioned, super easy, and quick option is to run this from a command prompt:
Just replace ‘domainname’ with your domain
You can also run some other options to find out more:
/dcname:domainname gets the PDC name for the domain /dsgetdc:domainname has flags for other information
Try nltest /? in your prompt to get more options! 🙂
This will return your closest Domain Controller in Powershell:
From a Windows command prompt, run gpresult . You will get:
- General workstation and domain information
- For both the computer and the user:
- Distinguished name in AD and which DC the policy was applied from
- Applied Group Policy objects
- List of security groups a member of
Here is some analysis of gpresult output. You can also specify gpresult /z to get more detailed information.
DNS and DHCP are the best way to check since there can be Unix/Linux machines on the network managed by the AD domain controller or acting as the domain controller.
Plus, considering active directory is nothing more than Microsoft’s version of Kerberos, LDAP, dhcp and dns. It would be better to understand and debug things at lower layers than layer 7+. This is because the operating system would preform these same requests and the underlining RFC for each protocol actually operates at a OSI level not the "insert favorite tool here" level.
One can go a step further and query the dhcp for options 6, 15, and 44 to get the domain name, domain name server, and Wins/NetBIOS name server.
Then using dns to check for the _kerberos._tcp, _kpasswd._tcp, _LDAP._TCP.dc._msdcs, and _ldap._tcp SRV records:
This breaks down into three areas, two are protocol supported DNS-SD records:
Get-ADDomainController: получаем информацию о контроллерах домена AD с помощью PowerShell
13.08.2019
itpro
Active Directory, PowerShell
комментариев 5Командлет Get-ADDomainController можно использовать для получения информации о контроллерах домена в Active Directory. Данный командлет входит в состав модуля Active Directory для PowerShell и требует установки отдельного компонента RSAT (в Windows 10 1809 и выше RSAT устанавливается по-новому).
Командлет Get-ADDomainController
При запуске Get-ADDomainController без параметров командлет выводит информацию о текущем контроллере домена (LogonServer), который используется данным компьютером для аутентификации (DC выбирается при загрузке в соответствии с топологией сайтов AD).

Командлет вернул все поля с информацией о контроллере домена, доступной в AD.
Также вы можете найти контроллер домена, к которому должен относится ваш компьютер через механизм DCLocator:
Вы можете найти ближайший доступный DC с активной ролью AD Web Services:
Get-ADDomainController –ForceDiscover -Discover -Service ADWS
Параметр Service можно использовать, чтобы найти PDC в домене:
Get-ADDomainController -Discover -Service PrimaryDC
Если ваш контроллер домена не найден или не отвечает, вы можете найти контроллер домена в ближайшем сайте AD (определяется по весу межсайтовых связей):
Get-ADDomainController –Discover –ForceDiscover -NextClosestSite
Чтобы вывести список все контроллеров домена в текущем домене, выполните:
Get-ADDomainController -Filter * | ft

Посчитать количество контроллеров домена в AD можно с помощью команды:
Get-ADDomainController -Filter * | Measure-Object

Выведем более удобную таблицу, в которой указаны все контроллеры домена с их именем, IP адресом, версией ОС и именем сайта AD:
Get-ADDomainController -Filter *| Select Name, ipv4Address, OperatingSystem, site | Sort-Object name

Если вам нужно получить информацию о DC из другого домена, нужно указать имя любого доступного DC в стороннем домене с помощью параметра –Server (возможно при наличии доверительных отношений между доменами).
Get-ADDomainController -Filter * -server dc01.contoso.cpm | Select Name, ipv4Address, IsGlobalCatalog, Site

Используем Get-ADDomainController для выборки контроллеров домена по условиям
Рассмотрим несколько полезных командлетов, которые можно использовать для получения списка контролеров домена в AD по определенным критериям.
Найти контроллер домена по его IP адресу:
Get-ADDomainController -Identity «10.1.1.120»
Найти все DC, в имени которых есть символы DC04:
Get-ADDomainController -Filter < name -like "*dc04*">| Select Name, ipv4Address, OperatingSystem, site
Поиск всех доступных DC в определенном сайте:
Get-ADDomainController -Discover -ForceDiscover -Site «Site-Name»
Вывести список DC в сайтах, имена которых начинаются с Mos*:
Get-ADDomainController -Filter
| Select Name, ipv4Address, OperatingSystem, site 
Get-ADDomainController -Filter < IsReadOnly -eq $true>| Select Name, ipv4Address, OperatingSystem, site
Найти DC в сайте “Site Name”, на которых включена роль Global Catalog:
Get-ADDomainController -Filter
| Select Name, ipv4Address, OperatingSystem, site PowerShell скрипт проверки доступности всех контроллеров домена
Следующая конструкция позволяет перебрать все контроллеры домена в Active Directory и выполнить для каждого из них определенное действие:
$AllDCs = Get-ADDomainController -Filter *
ForEach($DC in $AllDCs)
<
do something
>Ниже приведен пример простого PowerShell скрипта, который проверяет доступность LDAPS порта (TCP 636) на каждом DC в домене с помощью командлета Test-NetConnection. Если LDAPS порт на DC не доступен, появляется предупреждение.
$AllDCs = Get-ADDomainController -Filter * | Select-Object Hostname,Ipv4address,isGlobalCatalog,Site,Forest,OperatingSystem
ForEach($DC in $AllDCs)
<
$PortResult=Test-NetConnection -ComputerName $DC.Hostname -Port 636 -InformationLevel Quiet
if ($PortResult -ne «$True»)<
write-host $DC.Hostname » не доступен» -BackgroundColor Red -ForegroundColor White
>else <
write-host $DC.Hostname » доступен» >
>
Получился простой скрипт мониторинга доступности DC. Ест еще различные сценарии перебора всех DC в домене. В предыдущих статьях мы уже показывали, как использовать Get-ADDomainController для поиска определенного события в журналах на всех контролерах домена. Например, для: поиска события блокировки учетной записи пользователя, поиска событий NTLMv1 аутентификации, поиска событий добавления пользователя в группу AD и т.д.
Предыдущая статья Следующая статья
PowerShell: системное администрирование и программирование
Всё о PowerShell в Windows и на Linux. Системное администрирование Windows
Get-ADDomainController: получение информации о контроллерах домена через PowerShell
Вы можете использовать командлет PowerShell Get-ADDomainController для получения информации о контроллерах домена в Active Directory. Этот командлет является частью модуля Active Directory для Windows PowerShell, который может быть установлен как на Windows Server, так и на рабочих станциях Windows. Подробности смотрите в статье «Как установить и использовать Модуль Active Directory для Windows PowerShell».
Командлет Get-ADDomainController
Get-ADDomainController выводит информацию об одном или нескольких контроллеров домена Active Directory на основе критериев обнаруживаемых служб, параметров поиска или путём предоставления идентификатора контроллера домена, например имени NetBIOS.
Командлет Get-ADDomainController получает контроллеры домена, указанные в параметрах. Вы можете получить контроллеры домена, используя опции -Identity, -Filter или -Discover.
При запуске Get-ADDomainController без каких-либо параметров командлет отображает информацию о текущем контроллере домена (LogonServer), используемом этим компьютером для проверки подлинности (контроллер домена выбирается в соответствии с топологией IP-подсети сайта AD):
Командлет вернул все поля с информацией о контроллере домена, доступной в базе данных Active Directory.
Примеры использования Get-ADDomainController
Чтобы получить контроллер домена с помощью механизма обнаружения DCLocator, используйте опцию -Discover. Вы можете указать критерии поиска, задав такие опции, как -Service, -SiteName, -DomainName, -NextClosestSite, -AvoidSelf и -ForceDiscover.
Также вы можете найти контроллер домена, которому должен принадлежать ваш компьютер, через службу -DCLocator:
Следующая команда получит один доступный контроллер домена на указанном сайте:
Опция -ForceDiscover указывает командлету очистить всю кэшированную информацию о контроллере домена и выполнить новое обнаружение. Если этот параметр не указан, командлет может возвращать кэшированные сведения о контроллере домена.
Эта команда получает один доступный контроллер указанного домена в данном домене с помощью обнаружения.
Вы можете найти ближайший доступный контроллер домена с активной ролью веб-служб AD:
Опция -Service задаёт типы получаемых контроллеров домена. Вы можете указать более одного типа, используя список, разделённый запятыми. Допустимые значения для этого параметра:
- PrimaryDC или 1
- GlobalCatalog или 2
- KDC или 3
- TimeService или 4
- ReliableTimeService или 5
- ADWS или 6
Пример использования опции -Service для поиска PDC (Primary Domain Controller Emulator) в вашем домене:
Эта команда ищет компьютер с функцией Глобального каталога в текущем лесу:
Эта команда получает основной контроллер домена с помощью обнаружения и проверяет, используется ли он в качестве сервера времени.
Если ваш контроллер домена не найден или не отвечает, вы можете найти его на ближайшем сайте AD (определяется весом межсайтовых ссылок):
Чтобы найти и получить более одного контроллера домена, используйте опцию -Filter.
Чтобы отобразить список всех контроллеров домена в текущем домене, выполните такую команду:
Используя следующую команду, вы можете подсчитать количество контроллеров домена в AD:
Вы можете отобразить более удобную таблицу, в которой показаны все контроллеры домена, их имена хостов, IP-адреса, версии ОС и имена сайтов AD:
Если вы хотите получить некоторую информацию о DC из другого домена, укажите имя любого доступного DC в другом домене с помощью параметра -Server (это возможно в случае включения доверительных отношений между доменами).
Использование Get-ADDomainController для поиска контроллеров домена по определенным критериям
Давайте рассмотрим несколько полезных команд, которые вы можете использовать для получения списка контроллеров домена в AD по определенным критериям.
Опция -Identity указывает контроллер домена, который нужно получить. Вы можете идентифицировать контроллер домена по его GUID, IPV4Address, глобальному IPV6Address или имени узла DNS.
Чтобы найти контроллер домена по его IP-адресу:
Эта команда получает контроллер домена, используя его NetBIOS имя.
Эта команда получает контроллер домена, используя его имя хоста DNS, в домене, указанном параметром -Site, указанным в параметре -Server, и с указанием учётных данных администратора.
Чтобы найти все контроллеры домена, в именах которых есть DC02:
Чтобы отобразить список контроллеров домена на сайтах, имена которых начинаются с «Mun*»:
Чтобы отобразить список всех контроллеров домена только для чтения (RODC):
Чтобы найти контроллеры домена на сайте «Rome» с включённой ролью глобального каталога:
Скрипт PowerShell для проверки доступности всех контроллеров домена
Следующий скрипт PowerShell позволяет поочерёдно проверять контроллеры домена и выполнять для каждого из них определённые действия:
Вот пример простого скрипта PowerShell, который проверяет доступность порта LDAPS (TCP 636) на каждом контроллере домена в вашем домене с помощью командлета Test-NetConnection. Если порт LDAPS недоступен, появится предупреждение.
Получился простой скрипт для отслеживания доступности всех контроллеров домена в вашем домене.
Также существуют разные сценарии для проверки всех контроллеров домена по очереди.