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

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

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

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

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

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

Если вы вошли на компьютер под локальной учетной записью, то вместо имени контроллера домена в переменной LogonServer будет указано имя вашего компьютера.

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

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

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

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

get-service netlogon

служба netlogon нужна для обнаружения контроллера домена

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

  1. При загрузке Windows служба NetLogon делает DNS запрос за списком контроллеров домена (SVR записи
    _ldap._tcp.dc._msdcs.domain_
    ;
  2. DNS возвращает список DC в домене;
  3. Клиент делает LDAP запрос к DC для определения сайта AD по-своему IP адресу;
  4. DC возвращает сайт, которому соответствует IP клиента или наиболее близкий сайт (эта информация кэшируется в ветке реестра
    HKLMSystemCurrentControlSetServicesNetlogonParameters
    и используется при следующем входе для более быстрого поиска);
  5. Клиент через DNS запрашивает список контроллеров домена в сайте (в разделе _
    tcp.sitename._sites...
    ); ldap записи в DNS зоне сайта
  6. Windows пытается связаться со всеми DC в сайте и первый ответивший используется для выполнении аутентификации и в качестве LogonServer.
Вы можете переключить ваш компьютер на другой контроллер домена AD вручную с помощью команды:

nltest /SC_RESET:WINITPROMSK-DC02.winitpro.ru

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

Flags: 30 HAS_IP HAS_TIMESERV
Trusted DC Name MSK-DC02.winitpro.ru
Trusted DC Connection Status Status = 0 0x0 NERR_Success
The command completed successfully

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

I_NetLogonControl failed: Status = 1311 0x51f ERROR_NO_LOGON_SERVERS

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

There are currently no logon servers available to service the logon request.
Отсутствуют серверы, которые могли бы обработать запрос на вход в сеть.

Войти на такой компьютер можно только под сохраненными учетными данными доменного пользователя.

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

Get-ADDomainController -Discover -NextClosestSite

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

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