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

от admin

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

05.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%

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

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

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

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

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

    ldap записи в DNS зоне сайта

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

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

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

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

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

    Get-ADDomainController -Discover -NextClosestSite

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

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

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

    День добрый. Вопрос как прост так и сложен:
    Необходимо не вставая со своего стула и не открывая лишних подключений узнать какие компьютеры в сети к какому КД подключены.
    Можно было бы запустить по сети set logonserver > landisk://%computername%.txt, но хочется получить все на одном экране в небольшой таблице. как например вывод (для пробующих все сразу в консоли DC — это хотелка в PS его нет)

    Либо второй вариант: как узнать какие компьютеры завязаны как конкретном DC?

    Может кто в своей работе встречал модули к PS которые позволят выполнить искомое.

    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 недоступен, появится предупреждение.

    Получился простой скрипт для отслеживания доступности всех контроллеров домена в вашем домене.

    Также существуют разные сценарии для проверки всех контроллеров домена по очереди.

    Как я могу узнать, на каком контроллере домена я аутентифицировался?

    Как я могу узнать, на каком контроллере домена я аутентифицировался? Есть ли способ сделать это без локального администратора?

    6 ответов 6

    Вы можете найти это с помощью следующей команды:

    И вам не нужно быть администратором или poweruser, чтобы использовать его. Посмотрите на вывод этой команды:

    Для определения компьютера / сервера DC используйте NLTEST:

    Чтобы перечислить все DC с соответствующим сайтом, попробуйте:

    Вам не нужно использовать полное доменное имя доменного имени или сервера — например, вместо того, чтобы сказать /dclist:services.microsoft.com , вы можете просто ввести /dclist:services (если вы являетесь аутентифицированным членом этот домен, конечно).

    Для аутентификации пользователя и групповой политики используйте переменную LOGONSERVER:

    Читать:
    В какой системе счисления выполняется равенство

Похожие статьи