Найти имя контроллера домена Active Directory

Как узнать имя /IP-адрес контроллера домена AD в моей сети?

109 голосов | спросил user18682 25 +03002009-10-25T17:02:03+03:00312009bEurope/MoscowSun, 25 Oct 2009 17:02:03 +0300 2009, 17:02:03

7 ответов


129

На любом компьютере, настроенном DNS для DNS-сервера AD, выполните следующие действия:

  • Пуск -> Run -> nslookup

    set type=all
    _ldap._tcp.dc._msdcs.DOMAIN_NAME
    

Замените DOMAIN_NAME на фактическое имя домена, например. example.com . Подробнее здесь .

ответил blank3 25 +03002009-10-25T17:31:53+03:00312009bEurope/MoscowSun, 25 Oct 2009 17:31:53 +0300 2009, 17:31:53
59

Для компьютера, который является членом домена, переменная среды LOGONSERVER содержит имя DC, прошедшего проверку подлинности текущего пользователя. Очевидно, что это не все DC в среде с несколькими DC, но если все, что вам нужно, это быстрый способ найти имя контроллера домена, а затем из командной оболочки:

set l <enter>

Вернет все переменные среды, начинающиеся с «L», включая имя DC.

ответил Helvick 25 +03002009-10-25T18:00:58+03:00312009bEurope/MoscowSun, 25 Oct 2009 18:00:58 +0300 2009, 18:00:58
22

Неизменная, супер простая и быстрая опция заключается в том, чтобы запустить ее из командной строки:

nltest /dclist:domainname

Просто замените имя домена на свой домен

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

/dcname:domainname получает имя PDC для домена /dsgetdc:domainname содержит флажки для другой информации

Попробуйте nltest /? в вашем приглашении, чтобы получить больше опций! :)

ответил Abraxas 2 ndEurope/Moscowp30Europe/Moscow09bEurope/MoscowWed, 02 Sep 2015 23:59:33 +0300 2015, 23:59:33
19

Это вернет ваш ближайший контроллер домена в Powershell:

 Import-Module ActiveDirectory
(Get-ADDomainController -DomainName <Domain FQDN> -Discover -NextClosestSite).HostName
ответил Mark Henderson 9 Jam1000000amWed, 09 Jan 2013 02:46:24 +040013 2013, 02:46:24
17

В командной строке запустите gpresult. Вы получите:

  • Общая информация о рабочей станции и домене
  • Для компьютера и пользователя :
    • Отличительное имя в AD и какая DC политика была применена из
    • Объекты прикладной групповой политики
    • Список групп безопасности, входящих в состав

Ниже представлен пример выполнения Gpresult . Вы также можете указать gpresult, чтобы получить более подробную информацию.

ответил ErikE 4 Jam1000000amFri, 04 Jan 2013 06:53:11 +040013 2013, 06:53:11
6

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 записей:

nslookup -type=srv _kerberos._tcp.EXMAPLE.COM
nslookup -type=srv _kpasswd._tcp.EXAMPLE.COM
nslookup -type=srv _ldap._tcp.EXAMPLE.COM
nslookup -type=srv _ldap._tcp.dc._msdcs.EXAMPLE.COM

.EXAMPLE.COM ::= value returned from dhcp option-1

Это разбивается на три области: две поддерживаемые протоколом записи 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 для сопоставления контроллера домена.
ответил Dwight Spencer 1 stEurope/Moscowp30Europe/Moscow09bEurope/MoscowTue, 01 Sep 2015 19:17:06 +0300 2015, 19:17:06
0

Crude CMD

Просто найдите имена DC

Сохранить как GetDcNames.cmd:

nslookup -type=any %userdnsdomain%.

Запуск от имени: GetDcNames.cmd.

(Примечание: конечная точка в «% userdnsdomain%.» предназначена специально. Она останавливает ваш локальный nslookup с использованием любых строк пути поиска DNS.)

Найти больше доменов DNS, связанных с AD

Я взломал быстрый и грязный пакетный файл, так что мне не нужно запоминать имена доменов DNS и /или им нужно набирать их все. (Список может быть неполным.)

Работает с подключенными к домену машинами. Если ваш компьютер не подключен к домену, вы должны вручную установить USERDNSDOMAIN для того, что вы хотите.

Сохранить как TestAdDnsRecords.cmd:

@setlocal
@REM Test AD DNS domains for presence.
@REM For details see: http://serverfault.com/a/811622/253701

nslookup -type=srv _kerberos._tcp.%userdnsdomain%.
nslookup -type=srv _kerberos._udp.%userdnsdomain%.
@echo .

nslookup -type=srv _kpasswd._tcp.%userdnsdomain%.
nslookup -type=srv _kpasswd._udp.%userdnsdomain%.
@echo .

nslookup -type=srv _ldap._tcp.%userdnsdomain%.
@echo .

nslookup -type=srv _ldap._tcp.dc._msdcs.%userdnsdomain%.
@echo .

nslookup -type=srv _ldap._tcp.pdc._msdcs.%userdnsdomain%.
@echo .

@REM Those next few lines here are forest specific:
@REM Change the next line your current domain is not also the forest root.
@SET "DNSFORESTNAME=%USERDNSDOMAIN%"

nslookup -type=srv _ldap._tcp.gc._msdcs.%DNSFORESTNAME%.
@echo .

nslookup -type=srv _gc._tcp.%DNSFORESTNAME%.

Запуск от имени TestAdDnsRecords.cmd | more. Существует много текстового вывода.

Источники

ответил StackzOfZtuff 27 +03002016-10-27T13:01:20+03:00312016bEurope/MoscowThu, 27 Oct 2016 13:01:20 +0300 2016, 13:01:20

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132