Определить контроллер домена
Как определить какой контроллер домена вас аутентифицировал
Как определить какой контроллер домена вас аутентифицировал
Добрый день! Уважаемые читатели и гости IT блога Pyatilistnik.org. В данной статье, я хочу рассказать, как определить какой контроллер домена вас аутентифицировал. Иногда бывают ситуации, что нужно понять, данную информацию, для поиска проблем. Приведу простой пример, на пользователя была применена политика, которую я отключил на одном из контроллеров, через какое-то время, пользователь обратился, все стем же вопросом, выяснилось, что на другом DC, бала та же политика, отключив ее, все решилось, и в этом помогла информации, о том, кто его аутентифицировал.
- Открываем cmd и пишем в ней волшебную команду.
И видим, очень информативную выборку.
Как определить какой контроллер домена вас аутентифицировал
Или без лишней воды
- Второй метод определения контроллера домена, который проверил является использование команды:
- Третий метод вычисления контроллера домена, через который вы прошли аутентификацию, является использование старой, проверенной команды:
Вот такая простоя, но очень полезная команда, и у нее еще очень много полезных функций. С вами был Иван Семин, автор и создатель IT блога pyatilistnik.org.
Популярные Похожие записи:
5 Responses to Как определить какой контроллер домена вас аутентифицировал
данную информацию украли как понять
Это автоматическая ссылка, которая показывает кто и откуда без спроса автора взял его контент.
Кстати, Иван, почитав статейку «Как узнать версию windows, за минуту», я обнаружил еще один способ: в cmd ввести команду systeminfo, в выведенной информации найти строку «Сервер входа в сеть:»
Хочу поблагодарить тебя за твой сайт, очень полезный. Смело его можно рекомендовать к изучению Windows Server.
set logon, set, echo %logonserver% — это все команды, берущие информацию с одной точки — переменной окружения. Можно еще задать set logonserver, берет с той же точки, и показывает за какой DC прицепился при логоне пользователь. А вот nltest /dsgetdc показывает за какой DC зацепился при логоне компьютер. Они могут различаться. И если есть проблемы при общении компа с доменом, то можно проверить их сопряжением командой powershell Test-ComputerSecurityChannel (набрать в окне пошика Test-Co и нажать табуляцию, он сам допишет). Если выдаст False, значит компьютер не может общаться со DC, за который зацепился. Причин может быть много, одна из них — проблемы на стороне DC.
Найти имя контроллера домена Active Directory
Как узнать имя /IP-адрес контроллера домена AD в моей сети?
7 ответов
На любом компьютере, настроенном DNS для DNS-сервера AD, выполните следующие действия:
Пуск -> Run -> nslookup
Замените DOMAIN_NAME на фактическое имя домена, например. example.com . Подробнее здесь .
Для компьютера, который является членом домена, переменная среды LOGONSERVER содержит имя DC, прошедшего проверку подлинности текущего пользователя. Очевидно, что это не все DC в среде с несколькими DC, но если все, что вам нужно, это быстрый способ найти имя контроллера домена, а затем из командной оболочки:
Вернет все переменные среды, начинающиеся с «L», включая имя DC.
Неизменная, супер простая и быстрая опция заключается в том, чтобы запустить ее из командной строки:
Просто замените имя домена на свой домен
Вы также можете запустить несколько других опций, чтобы узнать больше:
/dcname:domainname получает имя PDC для домена /dsgetdc:domainname содержит флажки для другой информации
Попробуйте nltest /? в вашем приглашении, чтобы получить больше опций! 🙂
Это вернет ваш ближайший контроллер домена в Powershell:
В командной строке запустите gpresult . Вы получите:
- Общая информация о рабочей станции и домене
- Для компьютера и пользователя :
- Отличительное имя в AD и какая DC политика была применена из
- Объекты прикладной групповой политики
- Список групп безопасности, входящих в состав
Ниже представлен пример выполнения Gpresult . Вы также можете указать gpresult , чтобы получить более подробную информацию.
DNS и DHCP — лучший способ проверить, поскольку в сети могут быть компьютеры Unix /Linux, управляемые контроллером домена AD или действующие в качестве контроллера домена.
Плюс, учитывая, что активный каталог является не чем иным, как версией Microsoft Kerberos, LDAP, dhcp и dns. Было бы лучше понять и отладить вещи на более низких уровнях, чем слой 7+. Это связано с тем, что операционная система будет предировать эти же запросы, а подчеркивание RFC для каждого протокола фактически работает на уровне OSI, а не в «вставке любимого инструмента здесь».
Можно пойти дальше и запросить dhcp для параметров 6, 15 и 44, чтобы получить , сервер доменных имен и Wins /NetBIOS-сервер имен .
Затем, используя dns для проверки _kerberos._tcp, _kpasswd._tcp, _LDAP._TCP.dc._msdcs и _ldap._tcp SRV записей:
Это разбивается на три области: две поддерживаемые протоколом записи DNS-SD:
- _kerberos._tcp и _kpasswd._tcp (также в UNIX /Linux /OSX + некоторые сети Windows имеют _kadmin._tcp ) для кеберосов
- _ldap._tcp для ldap (openldap, opendc, каталог sun /oracle, ms ad) _LDAP._TCP.dc._msdcs — это только расширение Microsoft для ldap для сопоставления контроллера домена.
Crude CMD
Просто найдите имена DC
Сохранить как GetDcNames.cmd :
Запуск от имени: GetDcNames.cmd .
(Примечание: конечная точка в «% userdnsdomain%.» предназначена специально. Она останавливает ваш локальный nslookup с использованием любых строк пути поиска DNS.)
Найти больше доменов DNS, связанных с AD
Я взломал быстрый и грязный пакетный файл, так что мне не нужно запоминать имена доменов DNS и /или им нужно набирать их все. (Список может быть неполным.)
Работает с подключенными к домену машинами. Если ваш компьютер не подключен к домену, вы должны вручную установить USERDNSDOMAIN для того, что вы хотите.
Get-ADDomainController: получаем информацию о контроллерах домена AD с помощью PowerShell
Командлет 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
Get-ADDomainController -Filter < IsReadOnly -eq $true>| Select Name, ipv4Address, OperatingSystem, site
Найти DC в сайте “Site Name”, на которых включена роль Global Catalog:
Get-ADDomainController -Filter
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 и т.д.
Определить контроллер домена
Вопрос
- Изменен тип osr_ MVP, Moderator 22 октября 2009 г. 6:22 это вопрос
- Перемещено Mike Wang (MSCS) 22 апреля 2012 г. 18:25 (От:Windows Server 2008)
Ответы
// Что значит выбирает случайным образом? Механизм какой?
Андрей, будьте внимательны. Автор спрашивает, и я ему отвечаю, что контроллер домена выбирается случайным образом. Автору, по всей видимости, не интересно, как именно обнаруживается контроллер!
Механизм «выбора» таков. Получили писок, выбрали случайным образом. Пробуем подключиться. Ответил — используем. Не ответил — к следующему пробуем подключиться. И т.д. Все.
Автору. По теме. Попробуйте определить предпочтение в выборе клиентами контроллера, изменив значение веса приоритета для SRV-записей: «dnsmgmt: Forward Lookup Zones: _msdcs. «: в свойствах записей «_kerberos» и «_ldap», указывающих на один из контроллеров, установите значение «priority», отличное от нуля. Большее значение — меньший приоритет.
О результатах — отпишитесь. Но повторюсь, что тем самым Вы нарушаете штатную модель функционирования доменных служб Active Directory.
- Предложено в качестве ответа Vinokurov Yuriy 23 октября 2009 г. 7:37
- Помечено в качестве ответа Nikita Panov Moderator 27 октября 2009 г. 15:44
Все ответы
Не правильно. Любой из контроллеров домена несет смысловую нагрузку и отвечает по меньшей мере за аутентификацию пользователей.
По теме: клиент определяет какой из контроллеров домена использовать при помощи SRV записей в DNS.
Для чего вы хотите освободить один из них? Использование 2-ух контроллеров в пределах одного сайта нормальная практика.
Компьютер под управлением Windows XP выбирает контроллер случайным образом из тех, что принадлежат к сайту, в котором размещен компьютер, и домену, в котором компьютер определен. Системы под управлением Windows Vista / Windows 7 также выбирают контроллер тем же случайным образом, но с делают это более интеллектуально, у них NLA усовершенствована.
Не мешайте процесс обнаружения работоспособного и ближайшего «своего» контроллера домена и процессы, связанные с регистрацией в системе и другими взаимодействиями с контроллерами домена.
Тагир, Ваша «задача» противоречит штатной модели функционирования доменных служб Active Directory.
Что значит выбирает случайным образом? Механизм какой?
Следующая последовательность операций иллюстрирует, как локатор находит контроллер домена.
- На клиенте (компьютере, который пытается обнаружить контроллер домена) локатор запускается в виде вызова удаленной процедуры (RPC) к локальной службе Netlogon. Служба Netlogon реализовывает вызов API локатора DsGetDcName .
- Клиент собирает сведения, необходимые для выбора контроллера домена, и передает их службе Netlogon с помощью вызова DsGetDcName .
- На основании полученных сведений служба Netlogon клиента ищет контроллер домена для указанного домена. Поиск ведется двумя способами:
- Для обнаружения DNS-имени служба Netlogon обращается к DNS-серверу, используя IP/DNS-совместимый локатор: с помощью вызова DsGetDcName осуществляется вызов DnsQuery , который выбирает записи типа SRV и А с DNS-сервера, после того как имя домена добавляется в соответствующую строку, определяющую записи SRV.
Рабочая станция, которая входит на домен под управлением Windows, запрашивает у DNS-сервера SRV-записи в следующем формате:
Для обнаружения NetBIOS-имени служба Netlogon находит контроллер домена с помощью локатора, совместимого с Microsoft Windows NT 4.0, используя механизм передачи данных, например службу имен Интернета для Windows (WINS).
В ОС Windows NT 4.0 и более ранних версиях «обнаружение» – это процесс поиска контроллера домена для проверки подлинности в основном домене или в доверенном домене.
Видите где-то надпись про случайность? Да и причем она здесь? Если КД > 1 нужен механизм определения единственного из них это да.
Как посмотреть текущих хозяев операций в Active Directory (роли контроллеров домена)
Итак, наша задача на сегодня — узнать в текущем лесу и в текущем домене — какие контроллеры домена какие роли хозяев операций несут. Т.е. нас интересует:
- Кто является хозяином схемы
- Кто является хозяином именования доменов
- Кто является хозяином RID домена
- Кто является хозяином инфраструктуры
- Кто является основным контроллером домена
Есть два пути: через GUI (собирать информацию из разных мест) или через консоль (одним списком, быстро и четко).
Путь 1. Через консоль
Заходим на контроллер домена (например, через RDP) и выполняем через CMD:
C:> ntdsutil
ntdsutil: roles
fsmo maintenance: connections
server connections: connect to server
Привязка к .
Подключен к с помощью учетных данных локального пользователя.
server connections: quit
fsmo maintenance: select operation target
select operation target: list roles for connected server
Серверу » » известно о 5 ролях
Схема — CN=NTDS Settings,CN=SERVER1,CN=Servers,CN=CENTER,CN=Sites,CN=Configurati
on,DC=hotels
Хозяин именования — CN=NTDS Settings,CN=SERVER1,CN=Servers,CN=CENTER,CN=Sites,CN
=Configuration,DC=hotels
PDC — CN=NTDS Settings,CN=SERVER2,CN=Servers,CN=CENTER,CN=Sites,CN=Configuration,D
C=hotels
RID — CN=NTDS Settings,CN=SERVER2,CN=Servers,CN=CENTER,CN=Sites,CN=Configuration,D
C=hotels
Инфраструктура — CN=NTDS Settings,CN=SERVER3,CN=Servers,CN=CENTER,CN=Sites,CN
=Configuration,DC=hotels
select operation target: quit
fsmo maintenance: quit
ntdsutil: quit
Здесь вместо укажите имя сервера — контроллера домена. Например того, с которого Вы и выполняете эту команду.
Как видно в выводе команды — указанному серверу известно — кто является хозяином операции по каждой роли. Имена серверов видны после записей «CN=» (вторых по счету — первая запись — это «NTDS Settings»). В нашем примере мы видим, что хозяинами соответствующих операций являются: SERVER1, SERVER2 и SERVER3.
Путь 2. Через GUI
Определяем основной контроллер, хозяина RID и хозяина инфраструктуры
Три роли можно посмотреть в одном месте. Там мы увидим:
- Основной контроллер домена
- Хозяина RID
- Хозяина инфраструктуры
Для этого:
1) Открываем:
Пуск -> Администрирование -> Active Directory — Пользователи и компьютеры
2) Щелкаем правой кнопкой мыши на названии нужного домена в левой части окна и выбираем пункт меню «Хозяева операций».
3) В открывшемся окне будет три вкладки: «RID», «PDC» (основной контроллеро домена) и «Инфраструктура». Соответственно, заходя в ту или иную вкладку Вы можете наблюдать текущего хозяина роли в верхней строке.
Определяем сервер с ролью хозяина схемы
1) Для того, чтобы увидеть оснастку «Схема Active Directory», из которой мы сможем увидеть хозяина схема, выполним (с правами локального админа):
Пуск -> Выполнить -> «mmc» -> Enter
3) В открывшемся пустом окне MMC давим:
Файл -> Добавить или удалить оснастку
4) Выбираем оснастку «Схема Active Directory»
6) Правой кнопкой по «Схема Active Directory» в MMC и выбираем «Хозяин операций»
В открывшемся окне мы можем видеть текущего хозяина роли «Хозяин схемы» в верхней строчке.
Определяем сервер с ролью хозяина именования
Пуск -> Администрирование -> Active Directory — Домены и доверия
В открывшемся окне в левой части кликаем правой кнопкой мыши на «Домены и доверия» и выбираем пункт «Хозяин операций».
В открывшемся окне, в верхней строчке мы можем видеть текущего хозяина именования.