Light-electric.com

IT Журнал
136 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Определить контроллер домена

Как определить какой контроллер домена вас аутентифицировал

Как определить какой контроллер домена вас аутентифицировал

Добрый день! Уважаемые читатели и гости 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 или действующие в качестве контроллера домена.

Читать еще:  Remoteapp 2020 без домена

Плюс, учитывая, что активный каталог является не чем иным, как версией 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 | 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 и т.д.

Определить контроллер домена

Вопрос

  • Изменен тип 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 — Домены и доверия

В открывшемся окне в левой части кликаем правой кнопкой мыши на «Домены и доверия» и выбираем пункт «Хозяин операций».

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

0 0 голоса
Рейтинг статьи
Ссылка на основную публикацию
ВсеИнструменты