Я нашел другой инструмент, который я все же должен на самом деле испытать, я понятия не имею, будет ли он работать, но я собираюсь сделать примечание его здесь для дальнейшего использования.
/usr/bin/jing -c /usr/share/YaST2/schema/autoyast/rnc/profile.rnc autoyast.xml
На любом компьютере, которому настроили DNS для использования сервера DNS AD, сделайте:
Запустите-> Выполненный-> nslookup
set type=all
_ldap._tcp.dc._msdcs.DOMAIN_NAME
Замените DOMAIN_NAME фактическим доменным именем, например, example.com. Читайте больше здесь.
Для компьютера, который является членом домена Переменная среды, LOGONSERVER содержит название DC, который аутентифицировал текущего пользователя. Это, очевидно, не собирается быть всем DC в среде мульти-DC, но если все, что Вы хотите, является быстрым способом найти название Контроллера домена затем от командного процессора:
set l <enter>
Возвратит все Переменные среды, которые запускаются с "L" включая название DC.
Это вернет ваш ближайший контроллер домена в Powershell:
Import-Module ActiveDirectory
(Get-ADDomainController -DomainName <Domain FQDN> -Discover -NextClosestSite).HostName
В командной строке запустите gpresult
. Вы получите:
Вот пример результатов выполнения gpresult
. Вы также можете указать gpresult / z
, чтобы получить более подробную информацию.
Неупомянутый, очень простой и быстрый вариант - запустить это из командной строки:
nltest /dclist:domainname
Просто замените 'domainname' своим доменом
Вы также можете запустить некоторые другие параметры, чтобы узнать больше:
/ dcname: domainname
получает имя PDC для домена
/ dsgetdc: имя домена
содержит флаги для другой информации
Попробуйте ввести nltest /?
в запрос, чтобы получить дополнительные параметры! :)
DNS и DHCP - лучший способ проверки, поскольку в сети могут быть машины Unix / Linux, управляемые контроллером домена AD или действующие как контроллер домена.
Кроме того, учитывая, что активный каталог - это не что иное, как версия Microsoft Kerberos, LDAP, dhcp и dns. Было бы лучше понимать и отлаживать вещи на более низких уровнях, чем на уровне 7+. Это связано с тем, что операционная система будет выполнять те же самые запросы, а подчеркнутый RFC для каждого протокола фактически работает на уровне OSI, а не на уровне «вставьте сюда любимый инструмент».
Можно пойти еще дальше и запросить у dhcp параметры 6 , 15 и 44, чтобы получить доменное имя , , сервер доменных имен и сервер имен Wins / 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, ms ad)
_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 | подробнее
. Выводится много текста.
Перейдите в командную строку и введите «net time» — она выведет вам имя контроллера домена вместе со временем. Пример — «Текущее время в \{DCName}: {время}.
Если у вас просто есть доступ к DNS, вы можете получить список всех контроллеров домена с помощью следующего запроса в PowerShell:
Resolve-DnsName -Name _ldap._tcp.dc._msdcs.<YOU_DOMAIN> -Type SRV
Это может сделать любой пользователь с доступом к DNS.