Как узнать к какому контроллеру домена подключен компьютер
Перейти к содержимому

Как узнать к какому контроллеру домена подключен компьютер

  • автор:

Определить на каком контроллере домена (Logon Server) вы аутентифицировались

date05.03.2022
useritpro
directoryActive Directory, Windows 10, Windows Server 2019
commentsКомментариев пока нет

В некоторых случаях вам нужно определить на каком контроллере домена вы аутентифицированы (ваш logonserver). Это может пригодиться при проблемах с применением групповых политик, когда пользователи жалуются на медленный вход в систему. Пользователь может аутентифицироваться на неверном контроллере домена из-за того, что ближайший к нему DC не доступен, доступ к нему блокируется межсетевым экраном, неверной настройки подсетей и сайтов в Active Directory или проблемами с DNS. В результате пользователь может получать все GPO, скрипты, и т.д., не с ближайшего контроллера домена, а с любого другого DC. Это может привести к долгому применению GPO, медленной установке программ, медленной загрузки перемещаемых профилей или файлов в перенаправленных папках.

Как узнать на каком контроллере домена вы залогинены?

Вы можете узнать контроллер домена, через который вы выполнили вход в домен несколькими способами:

    • Из командной строки: set log
    • Из результатов команды: systeminfo | find /i “logon server”
    • Из переменного окружения: echo %logonserver%

    узнать контроллер домена, на котором аутентифицровался пользователь через powershell

    • Значение переменной окружения можно получить и с помощью PowerShell: $env:LOGONSERVER
    • В результатах команды gpresult /r:

    Зная контроллер домена, можно различную информацию о пользователя из журналов безопасности DC (например, историю входов пользователя в домен и другие логи).

    Можно автоматически записывать информацию, на каком контроллере домена авторизовался пользователь в описание компьютера в AD. Так можно узнать LogonServer для конкретного компьютера из AD, не обращаясь к конкретному компьютеру по сети или локально.

    Как Windows определяет ближайший контроллер домена?

    За определение LogonServer при загрузке Windows отвечает служба NetLogon. Она должны быть запущена:

    Упрощенно процесс поиска контроллера домена клиентом Windows выглядит так:

    1. При загрузке Windows служба NetLogon делает DNS запрос за списком контроллеров домена (SVR записи _ldap._tcp.dc._msdcs.domain_ ;
    2. DNS возвращает список DC в домене;
    3. Клиент делает LDAP запрос к DC для определения сайта AD по-своему IP адресу;

    nltest сменить контроллер домена

    Если указанный DC не доступен, появится ошибка:

    Если ни один из контроллеров домена не доступен, или компьютер отключен от сети, то при входе пользователя появится надпись:

    Найти ближайший к вам контроллер домена согласно иерархии сайтов, подсетей и весов можно с помощью командлета Get-ADDomainController из модуля Active Directory для PowerShell:

    Get-ADDomainController -Discover -NextClosestSite

    Так вы сможете определить имя контроллера домена, через который должен аутентифицироваться компьютер. Если он отличается от текущего, нужно понять почему.

    Предыдущая статьяПредыдущая статья Следующая статья Следующая статья

    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:

      Как найти все контроллеры домена

      Как вы думаете, сколько есть способов получить список контроллеров домена? Давайте посчитаем. Для примера возьмет тестовый домен с оригинальным именем TEST.LOCAL, в котором есть один контроллер домена с еще более оригинальным �� именем DC-TEST.

      Первый способ, которым я обычно пользуюсь — утилита командной строки Netdom. Для получения списка контроллеров домена воспользуемся командой:

      Netdom query DC

      вывод списка контроллеров домена с помощью утилиты Netdom

      Второй пойдет утилита Nltest. Выведем список контроллеров командой:

      вывод списка контроллеров домена с помощью утилиты Nltest

      Способ третий — утилита DSQUERY, специально предназначенная для поиска объектов в Active Directory. Найти контроллеры домена с ее помощью можно так:

      DSQUERY server -o rdn

      вывод списка контроллеров домена с помощью утилиты DSQUERY

      Перейдем к PowerShell. Поименно вывести контроллеры домена можно командой:

      Get-ADDomainController -Filter * | select Name

      вывод списка контроллеров домена с помощью PowerShell

      Переходим к нестандартным методам поиска. Выведем список контроллеров с помощью утилиты Nslookup. Каждый контроллер домена регистрирует в DNS запись SRV вида _ldap._tcp.dc._msdcs.domain.com, по которой его и можно найти. Для поиск по DNS воспользуемся командой:

      Nslookup -type=all _ldap._tcp.dc._msdcs.test.local

      вывод списка контроллеров домена с помощью nslookup

      С помощью WMI в Windows можно сделать практически все, в том числе и получить список контроллеров домена. Для этого нам потребуется класс Win32_NTDomain, в котором помимо прочего хранятся имена контроллеров домена. Получить их можно из командной строки:

      wmic NTDOMAIN GET DomainControllerName

      или из PowerShell:

      Get-WmiObject -Class win32_NTDomain | ft -a DomainControllerName

      вывод списка контроллеров домена с помощью WMI

      Ну и последний из известных мне способов. Все домен контроллеры являются членами группы «Domain Controllers», и для их получения остается только вывести список членов этой группы. Сделать это можно из командной строки:

      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 →

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *