Як я можу дізнатися ім’я / IP-адресу контролера домену AD в моїй мережі?
Як я можу дізнатися ім’я / IP-адресу контролера домену AD в моїй мережі?
Відповіді:
На будь-якому комп’ютері, який має DNS, налаштований на використання DNS-сервера AD:
Старт -> Виконати -> nslookup
set type=all
_ldap._tcp.dc._msdcs.DOMAIN_NAME
Замініть DOMAIN_NAME фактичним іменем домену, наприклад example.com . Детальніше читайте тут .
_ldap._tcp.dc._msdcs.UnKnown
. Що означає Невідоме ?
Для комп'ютера, який є членом домену, змінна середовища LOGONSERVER містить ім'я постійного струму, що підтверджував ідентифікацію поточного користувача. Це, очевидно, не буде всім DC в середовищі з декількома постійними струмами, але якщо все, що вам потрібно, це швидкий спосіб знайти ім'я контролера домену, то з командної оболонки:
set l <enter>
Поверне всі змінні середовища, які починаються з "L", включаючи назву постійного струму.
Незгаданий, дуже простий і швидкий варіант - це запустити це з командного рядка:
nltest /dclist:domainname
Просто замініть "доменне ім'я" на свій домен
Ви також можете запустити деякі інші параметри, щоб дізнатися більше:
/dcname:domainname
отримує ім'я PDC для домену
/dsgetdc:domainname
має прапори для іншої інформації
Спробуйте nltest /?
в своєму запиті отримати більше варіантів! :)
C:\> nltest /dclist:domainname Cannot find DC to get DC list from.Status = 1355 0x54b ERROR_NO_SUCH_DOMAIN The command completed successfully
Що це означає?
Це поверне ваш найближчий контролер домену в Powershell:
Import-Module ActiveDirectory
(Get-ADDomainController -DomainName <Domain FQDN> -Discover -NextClosestSite).HostName
З командного рядка запустіть gpresult
. Ти отримаєш:
Ось приклад виведення бігуgpresult
. Ви також можете вказати, gpresult /z
щоб отримати більш детальну інформацію.
gpresult /Z
видає багато даних. Дякую.
DNS і DHCP - найкращий спосіб перевірити, оскільки в мережі можуть бути машини Unix / Linux, якими керує контролер домену AD, або виконувати функції контролера домену.
Плюс розгляд активного каталогу - це не що інше, як версія Microsoft Kerberos, LDAP, dhcp та dns. Було б краще зрозуміти та налагодити речі на нижчих шарах, ніж шар 7+. Це пояснюється тим, що операційна система буде формувати ці самі запити, і підкреслена RFC для кожного протоколу насправді працює на рівні OSI, а не на рівні "вставки улюбленого інструмента сюди".
Можна піти ще далі і зробити запит DHCP для варіантів 6, 15 і 44 , щоб отримати ім'я домену , сервер доменних імен , і ім'я сервера Виграші / NetBIOS .
Потім за допомогою dns перевірити наявність записів SRV _kerberos._tcp, _kpasswd._tcp, _LDAP._TCP.dc._msdcs та _ldap._tcp:
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
) є для kerberos_ldap._tcp
призначено для ldap (каталог openldap, opendc, sun / oracle, мс-оголошення)
_LDAP._TCP.dc._msdcs
- це лише розширення Microsoft для ldap для відображення контролера домену.Зберегти як GetDcNames.cmd
:
nslookup -type=any %userdnsdomain%.
Запуск: GetDcNames.cmd
.
(Примітка. Точка в "% userdnsdomain%." Призначена спеціально. Це зупиняє ваш локальний nslookup від використання будь-яких рядків шляху пошуку DNS.)
Я підключив швидкий і брудний пакетний файл, так що мені не потрібно запам’ятовувати доменні імена 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
. Виводиться багато тексту.