При репликации возникла ошибка 1908

Один из механизмов Active Directory (AD), с которым могут быть связаны всевозможные затруднения, это репликация. Репликация – критически важный процесс в работе одного или более доменов или контроллеров домена (DC), и не важно, находятся они на одном сайте или на разных. Неполадки с репликацией могут привести к проблемам с аутентификацией и доступом к сетевым ресурсам. Обновления объектов AD реплицируются на контроллеры домена, чтобы все разделы были синхронизированы. В крупных компаниях использование большого количества доменов и сайтов – обычное дело. Репликация должна происходить внутри локального сайта, так же как дополнительные сайты должны сохранять данные домена и леса между всеми DC.

В этой статье речь пойдет о методах выявления проблем с репликацией в AD. Кроме того, я покажу, как находить и устранять неисправности и работать с четырьмя наиболее распространенными ошибками репликации AD:

  • Error 2146893022 (главное конечное имя неверно);
  • Error 1908 (не удалось найти контроллер домена);
  • Error 8606 (недостаточно атрибутов для создания объекта);
  • Error 8453 (доступ к репликации отвергнут).

Вы также узнаете, как анализировать метаданные репликации с помощью таких инструментов, как AD Replication Status Tool, встроенная утилита командной строки RepAdmin.exe и Windows PowerShell.

Для всестороннего рассмотрения я буду использовать лес Contoso, который показан на рисунке. В таблице 1 перечислены роли, IP-адреса и настройки DNS-клиента для компьютеров данного леса.

Архитектура леса
Рисунок. Архитектура леса

Роли системы и настройки

Для обнаружения неполадок с репликацией AD запустите AD Replication Status Tool на рабочей станции администратора в корневом домене леса. Например, вы открываете этот инструмент из системы Win8Client, а затем нажимаете кнопку Refresh Replication Status для уверенности в четкой коммуникации со всеми контроллерами домена. В таблице Discovery Missing Domain Controllers на странице Configuration/Scope Settings инструмента можно увидеть два недостающих контроллера домена, как показано на экране 1.

Два недостающих контроллера домена
Экран 1. Два недостающих контроллера домена

В таблице Replication Status Collection Details вы можете проследить статус репликации контроллеров домена, которые никуда не пропадали, как показано на экране 2.

Статус репликации контроллеров домена
Экран 2. Статус репликации контроллеров домена

Пройдя на страницу Replication Status Viewer, вы обнаружите некоторые ошибки в репликации. На экране 3 видно, что возникает немалое число ошибок репликации, возникающих в лесу Contoso. Из пяти контроллеров домена два не могут видеть другие DC, а это означает, что репликация не будет происходить на контроллерах домена, которые не видны. Таким образом, пользователи, подключающиеся к дочерним DC, не будут иметь доступ к самой последней информации, что может привести к проблемам.

Ошибки репликации, возникающие в лесу Contoso
Экран 3. Ошибки репликации, возникающие в лесу Contoso

Поскольку ошибки репликации все же возникают, полезно задействовать утилиту командной строки RepAdmin.exe, которая помогает получить отчет о состоянии репликации по всему лесу. Чтобы создать файл, запустите следующую команду из Cmd.exe:

Repadmin /showrel * /csv > ShowRepl.csv

Проблема с двумя DC осталась, соответственно вы увидите два вхождения LDAP error 81 (Server Down) Win32 Err 58 на экране, когда будет выполняться команда. Мы разберемся с этими ошибками чуть позже. А теперь откройте ShowRepl.csv в Excel и выполните следующие шаги:

  1. Из меню Home щелкните Format as table и выберите один из стилей.
  2. Удерживая нажатой клавишу Ctrl, щелкните столбцы A (Showrepl_COLUMNS) и G (Transport Type). Правой кнопкой мыши щелкните в этих столбцах и выберите Hide.
  3. Уменьшите ширину остальных столбцов так, чтобы был виден столбец K (Last Failure Status).
  4. Для столбца I (Last Failure Time) нажмите стрелку вниз и отмените выбор 0.
  5. Посмотрите на дату в столбце J (Last Success Time). Это последнее время успешной репликации.
  6. Посмотрите на ошибки в столбце K (Last Failure Status). Вы увидите те же ошибки, что и в AD Replication Status Tool.

Таким же образом вы можете запустить средство RepAdmin.exe из PowerShell. Для этого сделайте следующее:

1. Перейдите к приглашению PowerShell и введите команду

Repadmin /showrepl * /csv | ConvertFrom-Csv | Out-GridView

2. В появившейся сетке выберите Add Criteria, затем Last Failure Status и нажмите Add.

3. Выберите подчеркнутое слово голубого цвета contains в фильтре и укажите does not equal.

4. Как показано на экране 4, введите 0 в поле, так, чтобы отфильтровывалось все со значением 0 (успех) и отображались только ошибки.

Задание фильтра
Экран 4. Задание фильтра

Теперь, когда вы знаете, как проверять статус репликации и обнаруживать ошибки, давайте посмотрим, как выявлять и устранять четыре наиболее распространенные неисправности.

Исправление ошибки AD Replication Error -2146893022

Итак, начнем с устранения ошибки -2146893022, возникающей между DC2 и DC1. Из DC1 запустите команду Repadmin для проверки статуса репликации DC2:

Repadmin /showrepl dc2

На экране 5 показаны результаты, свидетельствующие о том, что репликация перестала выполняться, поскольку возникла проблема с DC2: целевое основное имя неверно. Тем не менее, описание ошибки может указать ложный путь, поэтому приготовьтесь копать глубже.

Проблема с DC2 - целевое основное имя неверно
Экран 5. Проблема с DC2 — целевое основное имя неверно

Во-первых, следует определить, есть ли базовое подключение LDAP между системами. Для этого запустите следующую команду из DC2:

Repadmin /bind DC1

На экране 5 видно, что вы получаете сообщение об ошибке LDAP. Далее попробуйте инициировать репликацию AD с DC2 на DC1:

Repadmin /replicate dc2 dc1 «dc=root,dc=contoso,dc=com»

И на этот раз отображается та же ошибка с главным именем, как показано на экране 5. Если открыть окно Event Viewer на DC2, вы увидите событие с Event ID 4 (см. экран 6).

Сообщение о событии с Event ID 4
Экран 6. Сообщение о событии с Event ID 4

Выделенный текст в событии указывает на причину ошибки. Это означает, что пароль учетной записи компьютера DC1 отличается от пароля, который хранится в AD для DC1 в Центре распределения ключей – Key Distribution Center (KDC), который в данном случае запущен на DC2. Значит, следующая наша задача – определить, соответствует ли пароль учетной записи компьютера DC1 тому, что хранится на DC2. В командной строке на DC1 введите две команды:

Repadmin /showobjmeta dc1 «cn=dc1,ou=domain controllers,

dc=root,dc=contoso,dc=com» > dc1objmeta1.txt
Repadmin /showobjmeta dc2 «cn=dc1,ou=domain controllers,

dc=root,dc=contoso,dc=com» > dc1objmeta2.txt

Далее откройте файлы dc1objmeta1.txt и dc1objmeta2.txt, которые были созданы, и посмотрите на различия версий для dBCSPwd, UnicodePWD, NtPwdHistory, PwdLastSet и lmPwdHistory. В нашем случае файл dc1objmeta1.txt показывает версию 19, тогда как версия в файле dc1objmeta2.txt – 11. Таким образом, сравнивая эти два файла, мы видим, что DC2 содержит информацию о старом пароле для DC1. Операция Kerberos не удалась, потому что DC1 не смог расшифровать билет службы, представленный DC2.

KDC, запущенный на DC2, не может быть использован для Kerberos вместе с DC1, так как DC2 содержит информацию о старом пароле. Чтобы решить эту проблему, вы должны заставить DC2 использовать KDC на DC1, чтобы завершить репликацию. Для этого вам, в первую очередь, необходимо остановить службу KDC на DC2:

Net stop kdc

Теперь требуется начать репликацию корневого раздела Root:

Repadmin /replicate dc2 dc1 «dc=root,dc=contoso,dc=com»

Следующим вашим шагом будет запуск двух команд Repadmin /showobjmeta снова, чтобы убедиться в том, что версии совпадают. Если все хорошо, вы можете перезапустить службу KDC:

Net start kdc

Обнаружение и устранение ошибки AD Replication Error 1908

Теперь, когда мы устранили ошибку -2146893022, давайте перейдем к ошибке репликации AD 1908, где DC1, DC2 и TRDC1 так и не удалось выполнить репликацию из ChildDC1. Решить проблему можно следующим образом. Используйте Nltest.exe для создания файла Netlogon.log, чтобы выявить причину ошибки 1908. Прежде всего, включите расширенную регистрацию на DC1, запустив команду:

Nltest /dbflag:2080fff

Теперь, когда расширенная регистрация включена, запустите репликацию между DC – так все ошибки будут зарегистрированы. Этот шаг поможет запустить три команды для воспроизведения ошибок. Итак, во-первых, запустите следующую команду на DC1:

Repadmin /replicate dc1 childdc1 dc=child,dc=root,
dc=contoso,dc=com

Результат, показанный на экране 7, говорит о том, что репликация не состоялась, потому что DC домена не может быть найден.

Репликация не состоялась, потому что DC домена не может быть найден
Экран 7. Репликация не состоялась, потому что DC домена не может быть найден

Во-вторых, из DC1 попробуйте определить местоположение KDC в домене child.root.contoso.com с помощью команды:

Nltest /dsgetdc:child /kdc

Результаты на экране 7 свидетельствуют, что такого домена нет. В-третьих, поскольку вы не можете найти KDC, попытайтесь установить связь с любым DC в дочернем домене, используя команду:

Nltest /dsgetdc:child

В очередной раз результаты говорят о том, что нет такого домена, как показано на экране 7.

Теперь, когда вы воспроизвели все ошибки, просмотрите файл Netlogon.log, созданный в папке C:Windowsdebug. Откройте его в «Блокноте» и найдите запись, которая начинается с DSGetDcName function called. Обратите внимание, что записей с таким вызовом будет несколько. Вам нужно найти запись, имеющую те же параметры, что вы указали в команде Nltest (Dom:child и Flags:KDC). Запись, которую вы ищете, будет выглядеть так:

DSGetDcName function called: client PID=2176,
Dom:child Acct:(null) Flags:KDC

Вы должны просмотреть начальную запись, равно как и последующие, в этом потоке. В таблице 2 представлен пример потока 3372. Из этой таблицы следует, что поиск DNS записи KDC SRV в дочернем домене был неудачным. Ошибка 1355 указывает, что заданный домен либо не существует, либо к нему невозможно подключиться.

Пример потока 3372

Поскольку вы пытаетесь подключиться к Child.root.contoso.com, следующий ваш шаг – выполнить для него команду ping из DC1. Скорее всего, вы получите сообщение о том, что хост не найден. Информация из файла Netlogon.log и ping-тест указывают на возможные проблемы в делегировании DNS. Свои подозрения вы можете проверить, сделав тест делегирования DNS. Для этого выполните следующую команду на DC1:

Dcdiag /test:dns /dnsdelegation > Dnstest.txt

На экране 8 показан пример файла Dnstest.txt. Как вы можете заметить, это проблема DNS. Считается, что IP-адрес 192.168.10.1 – адрес для DC1.

Пример файла Dnstest.txt
Экран 8. Пример файла Dnstest.txt

Чтобы устранить проблему DNS, сделайте следующее:

1. На DC1 откройте консоль управления DNS.

2. Разверните Forward Lookup Zones, разверните root.contoso.com и выберите child.

3. Щелкните правой кнопкой мыши (как в родительской папке) на записи Name Server и выберите пункт Properties.

4. Выберите lamedc1.child.contoso.com и нажмите кнопку Remove.

5. Выберите Add, чтобы можно было добавить дочерний домен сервера DNS в настройки делегирования.

6. В окне Server fully qualified domain name (FQDN) введите правильный сервер childdc1.child.root.contoso.com.

7. В окне IP Addresses of this NS record введите правильный IP-адрес 192.168.10.11.

8. Дважды нажмите кнопку OK.

9. Выберите Yes в диалоговом окне, где спрашивается, хотите ли вы удалить связующую запись (glue record) lamedc1.child.contoso.com [192.168.10.1]. Glue record – это запись DNS для полномочного сервера доменных имен для делегированной зоны.

10. Используйте Nltest.exe для проверки, что вы можете найти KDC в дочернем домене. Примените опцию /force, чтобы кэш Netlogon не использовался:

Nltest /dsgetdc:child /kdc /force

11. Протестируйте репликацию AD из ChildDC1 на DC1 и DC2. Это можно сделать двумя способами. Один из них – выполнить команду

Repadmin /replicate dc1 childdc1 «dc=child,dc=root,
dc=contoso,dc=com»

Другой подход заключается в использовании оснастки Active Directory Sites и Services консоли Microsoft Management Console (MMC), в этом случае правой кнопкой мыши щелкните DC и выберите Replicate Now, как показано на экране 9. Вам нужно это сделать для DC1, DC2 и TRDC1.

Использование оснастки Active Directory Sites и?Services
Экран 9. Использование оснастки Active Directory Sites и?Services

После этого вы увидите диалоговое окно, как показано на экране 10. Не учитывайте его, нажмите OK. Я вкратце расскажу об этой ошибке.

Ошибка при репликации
Экран 10. Ошибка при репликации

Когда все шаги выполнены, вернитесь к AD Replication Status Tool и обновите статус репликации на уровне леса. Ошибки 1908 больше быть не должно. Ошибка, которую вы видите, это ошибка 8606 (недостаточно атрибутов для создания объекта), как отмечалось на экране 10. Это следующая трудность, которую нужно преодолеть.

Устранение ошибки AD Replication Error 8606

Устаревший объект (lingering object) – это объект, который присутствует на DC, но был удален на одном или нескольких других DC. Ошибка репликации AD 8606 и ошибка 1988 в событиях Directory Service – хорошие индикаторы устаревших объектов. Важно учитывать, что можно успешно завершить репликацию AD и не регистрировать ошибку с DC, содержащего устаревшие объекты, поскольку репликация основана на изменениях. Если объекты не изменяются, то реплицировать их не нужно. По этой причине, выполняя очистку устаревших объектов, вы допускаете, что они есть у всех DC (а не только DCs logging errors).

Чтобы устранить проблему, в первую очередь убедитесь в наличии ошибки, выполнив следующую команду Repadmin на DC1:

Repadmin /replicate dc1 dc2 «dc=root,dc=contoso,dc=com»

Вы увидите сообщение об ошибке, как показано на экране 11. Кроме того, вы увидите событие с кодом в Event Viewer DC1 (см. экран 12). Обратите внимание, что событие с кодом 1988 только дает отчет о первом устаревшем объекте, который вам вдруг встретился. Обычно таких объектов много.

Ошибка из-за наличия устаревшего объекта
Экран 11. Ошибка из-за наличия устаревшего объекта
Событие с кодом 1988
Экран 12. Событие с кодом 1988

Вы должны скопировать три пункта из информации об ошибке 1988 в событиях: идентификатор globally unique identifier (GUID) устаревшего объекта, сервер-источник (source DC), а также уникальное, или различающееся, имя раздела – distinguished name (DN). Эта информация позволит определить, какой DC имеет данный объект.

Прежде всего, используйте GUID объекта (в данном случае 5ca6ebca-d34c-4f60-b79c-e8bd5af127d8) в следующей команде Repadmin, которая отправляет результаты в файл Objects.txt:

Repadmin /showobjmeta * «e8bd5af127d8>» > Objects.txt

Если вы откроете файл Objects.txt, то увидите, что любой DC, который возвращает метаданные репликации для данного объекта, содержит один или более устаревших объектов. DC, не имеющие копии этого объекта, сообщают статус 8439 (уникальное имя distinguished name, указанное для этой операции репликации, недействительно).

Затем вам нужно, используя GUID объект Directory System Agent (DSA) DC1, идентифицировать все устаревшие объекты в разделе Root на DC2. DSA предоставляет доступ к физическому хранилищу информации каталога, находящейся на жестком диске. В AD DSA – часть процесса Local Security Authority. Для этого выполните команду:

Repadmin /showrepl DC1 > Showrepl.txt

В Showrepl.txt GUID объект DSA DC1 появляется вверху файла и выглядит следующим образом:

DSA object GUID: 70ff33ce-2f41-4bf4-b7ca-7fa71d4ca13e

Ориентируясь на эту информацию, вы можете применить следующую команду, чтобы удостовериться в существовании устаревших объектов на DC2, сравнив его копию раздела Root с разделом Root DC1.

Repadmin /removelingeringobjects DC2 70ff33ce-2f41-4bf4-
b7ca-7fa71d4ca13e «dc=root,dc=contoso,dc=com»
/Advisory_mode

Далее вы можете просмотреть журнал регистрации событий Directory Service на DC2, чтобы узнать, есть ли еще какие-нибудь устаревшие объекты. Если да, то о каждом будет сообщаться в записи события 1946. Общее число устаревших объектов для проверенного раздела будет отмечено в записи события 1942.

Вы можете удалить устаревшие объекты несколькими способами. Предпочтительно использовать ReplDiag.exe. В качестве альтернативы вы можете выбрать RepAdmin.exe.

Используем ReplDiag.exe. С вашей рабочей станции администратора в корневом домене леса, а в нашем случае это Win8Client, вы должны выполнить следующие команды:

Repldiag /removelingeringobjects
Repadmin /replicate dc1 dc2 «dc=root,dc=contoso,dc=com»

Первая команда удаляет объекты. Вторая команда служит для проверки успешного завершения репликации (иными словами, ошибка 8606 больше не регистрируется). Возвращая команды Repadmin /showobjmeta, вы можете убедиться в том, что объект был удален из всех, что объект был удален DC. Если у вас есть контроллер только для чтения read-only domain controller (RODC) и он содержал данный устаревший объект, вы заметите, что он все еще там находится. Дело в том, что текущая версия ReplDiag.exe не удаляет объекты из RODC. Для очистки RODC (в нашем случае, ChildDC2) выполните команду:

Repadmin /removelingeringobjects childdc2.child.root.
contoso.com 70ff33ce-2f41-4bf4-b7ca-7fa71d4ca13e
«dc=root,dc=contoso,dc=com» /Advisory_mode

После этого просмотрите журнал событий Directory Service на ChildDC2 и найдите событие с кодом 1939. На экране 13 вы видите уведомление о том, что устаревшие объекты были удалены.

Сообщение об удалении устаревших объектов
Экран 13. Сообщение об удалении устаревших объектов

Используем RepAdmin.exe. Другой способ, позволяющий удалить устаревшие объекты – прибегнуть к помощи RepAdmin.exe. Сначала вы должны удалить устаревшие объекты главных контроллеров домена (reference DC) с помощью кода, который видите в листинге 1. После этого необходимо удалить устаревшие объекты из всех остальных контроллеров домена (устаревшие объекты могут быть показаны или на них могут обнаружиться ссылки на нескольких контроллерах домена, поэтому убедитесь, что вы удалили их все). Необходимые для этой цели команды приведены в листинге 2.

Как видите, использовать ReplDiag.exe гораздо проще, чем RepAdmin.exe, поскольку вводить команд вам придется намного меньше. Ведь чем больше команд, тем больше шансов сделать опечатку, пропустить команду или допустить ошибку в командной строке.

Устранение ошибки AD Replication Error 8453

Предыдущие ошибки репликации AD были связаны с невозможностью найти другие контроллеры домена. Ошибка репликации AD с кодом состояния 8453 возникает, когда контроллер домена видит другие DC, но не может установить с ними связи репликации.

Например, предположим, что ChildDC2 (RODC) в дочернем домене не уведомляет о себе как о сервере глобального каталога – Global Catalog (GC). Для получения статуса ChildDC2 запустите следующие команды на ChildDC2:

Repadmin /showrepl childdc2 > Repl.txt

Данная команда отправляет результаты Repl.txt. Если вы откроете этот текстовый файл, то увидите вверху следующее:

BoulderChildDC2
DSA Options: IS_GC DISABLE_OUTBOUND_REPL IS_RODC
WARNING: Not advertising as a global catalog

Если вы внимательно посмотрите на раздел Inbound Neighbors, то увидите, что раздел DC=treeroot,DC=fabrikam,DC=com отсутствует, потому что он не реплицируется. Взгляните на кнопку файла – вы увидите ошибку:

Source: BoulderTRDC1
******* 1 CONSECTUTIVE FAILURES since 2014-01-12 11:24:30
Last error: 8453 (0x2105):
Replication access was denied
Naming Context: DC=treeroot,DC=fabrikam,DC=com

Эта ошибка означает, что ChildDC2 не может добавить связь репликации (replication link) для раздела Treeroot. Как показано на экране 14, данная ошибка также записывается в журнал регистрации событий Directory Services на ChildDC2 как событие с кодом 1926.

Отсутствие связи репликации
Экран 14. Отсутствие связи репликации

Здесь вам нужно проверить, нет ли проблем, связанных с безопасностью. Для этого используйте DCDiag.exe:

Dcdiag /test:checksecurityerror

На экране 15 показан фрагмент вывода DCDiag.exe.

Фрагмент вывода DCDiag.exe
Экран 15. Фрагмент вывода DCDiag.exe

Как видите, вы получаете ошибку 8453, потому что группа безопасности Enterprise Read-Only Domain Controllers не имеет разрешения Replicating Directory Changes.

Чтобы решить проблему, вам нужно добавить отсутствующую запись контроля доступа – missing access control entry (ACE) в раздел Treeroot. В этом вам помогут следующие шаги:

1. На TRDC1 откройте оснастку ADSI Edit.

2. Правой кнопкой мыши щелкните DC=treeroot,DC=fabrikam,DC=com и выберите Properties.

3. Выберите вкладку Security.

4. Посмотрите разрешения на этот раздел. Отметьте, что нет записей для группы безопасности Enterprise Read-Only Domain Controllers.

5. Нажмите Add.

6. В окне Enter the object names to select наберите ROOTEnterprise Read-Only Domain Controllers.

7. Нажмите кнопку Check Names, затем выберите OK, если указатель объектов (object picker) разрешает имя.

8. В диалоговом окне Permissions для Enterprise Read-Only Domain Controllers снимите флажки Allow для следующих разрешений

*Read

*Read domain password & lockout policies («Чтение политики блокировки и пароля домена»)

*Read Other domain parameters

9. Выберите флажок Allow для разрешения Replicating Directory Changes, как показано на экране 16. Нажмите OK.

10. Вручную запустите Knowledge Consistency Checker (KCC), чтобы немедленно сделать перерасчет топологии входящей репликации на ChildDC2, выполнив команду

Repadmin /kcc childdc2
Включение разрешения Replicating Directory Change
Экран 16. Включение разрешения Replicating Directory Change

Данная команда заставляет KCC на каждом целевом сервере DC незамедлительно делать перерасчет топологии входящей репликации, добавляя снова раздел Treeroot.

Состояние репликации критически важно

Репликация во всех отношениях в лесу AD имеет решающее значение. Следует регулярно проводить ее диагностику, чтобы изменения были видны всем контроллерам домена, иначе могут возникать различные проблемы, в том числе связанные с аутентификацией. Проблемы репликации нельзя обнаружить сразу. Поэтому если вы пренебрегаете мониторингом репликации (в крайнем случае, периодически делайте проверку), то рискуете столкнуться с трудностями в самый неподходящий момент. Моей задачей было показать вам, как проверять статус репликации, обнаруживать ошибки и в то же время как справиться с четырьмя типичными проблемами репликации AD.

Листинг 1. Команды для удаления устаревших объектов из Reference DC

REM Команды для удаления устаревших объектов
REM из раздела Configuration.
Repadmin /removelingeringobjects childdc1.child.root.
contoso.com 70ff33ce-2f41-4bf4-b7ca-7fa71d4ca13e
«cn=configuration,dc=root,dc=contoso,dc=com»
Repadmin /removelingeringobjects childdc1.child.root.
contoso.com 3fe45b7f-e6b1-42b1-bcf4-2561c38cc3a6
«cn=configuration,dc=root,dc=contoso,dc=com»
Repadmin /removelingeringobjects childdc1.child.root.
contoso.com 0b457f73-96a4-429b-ba81-1a3e0f51c848
«cn=configuration,dc=root,dc=contoso,dc=com»
REM Команды для удаления устаревших объектов
REM из раздела ForestDNSZones.
Repadmin /removelingeringobjects childdc1.child.root.
contoso.com 70ff33ce-2f41-4bf4-b7ca-7fa71d4ca13e
«dc=forestdnszones,dc=root,dc=contoso,dc=com»
Repadmin /removelingeringobjects childdc1.child.root.
contoso.com 3fe45b7f-e6b1-42b1-bcf4-2561c38cc3a6
«dc=forestdnszones,dc=root,dc=contoso,dc=com»
Repadmin /removelingeringobjects childdc1.child.
root.contoso.com 0b457f73-96a4-429b-ba81-
1a3e0f51c848 «dc=forestdnszones,dc=root,
dc=contoso,dc=com»
REM Команды для удаления устаревших объектов
REM из раздела домена Root.
Repadmin /removelingeringobjects dc1.root.
contoso.com 3fe45b7f-e6b1-42b1-bcf4-2561c38cc3a6
«dc=root,dc=contoso,dc=com»
REM Команды для удаления устаревших объектов
REM из раздела DomainDNSZones.
Repadmin /removelingeringobjects dc1.root.
contoso.com 3fe45b7f-e6b1-42b1-bcf4-2561c38cc3a6
«dc=root,dc=contoso,dc=com»

Листинг 2. Команды для удаления устаревших объектов из остальных DC

REM Команды для удаления устаревших объектов
REM из раздела Configuration.
Repadmin /removelingeringobjects dc1.root.
contoso.com 0c559ee4-0adc-42a7-8668-e34480f9e604
«cn=configuration,dc=root,dc=contoso,dc=com»
Repadmin /removelingeringobjects dc2.root.
contoso.com 0c559ee4-0adc-42a7-8668-e34480f9e604
«cn=configuration,dc=root,dc=contoso,dc=com»
Repadmin /removelingeringobjects childdc2.child.root.
contoso.com 0b457f73-96a4-429b-ba81-1a3e0f51c848
«cn=configuration,dc=root,dc=contoso,dc=com»
Repadmin /removelingeringobjects trdc1.treeroot.
fabrikam.com 0c559ee4-0adc-42a7-8668-e34480f9e604
«cn=configuration,dc=root,dc=contoso,dc=com»
REM Команды для удаления устаревших объектов
REM из раздела ForestDNSZones.
Repadmin /removelingeringobjects dc1.root.contoso.
com 0c559ee4-0adc-42a7-8668-e34480f9e604
«dc=forestdnszones,dc=root,dc=contoso,dc=com»
Repadmin /removelingeringobjects dc2.root.contoso.
com 0c559ee4-0adc-42a7-8668-e34480f9e604
«dc=forestdnszones,dc=root,dc=contoso,dc=com»
Repadmin /removelingeringobjects childdc2.child.root.
contoso.com 0b457f73-96a4-429b-ba81-1a3e0f51c848
«dc=forestdnszones,dc=root,dc=contoso,dc=com»
Repadmin /removelingeringobjects trdc1.treeroot.
fabrikam.com 0c559ee4-0adc-42a7-8668-e34480f9e604
«dc=forestdnszones,dc=root,dc=contoso,dc=com»
REM Команды для удаления устаревших объектов
REM из раздела DomainDNSZones–Root.
Repadmin /removelingeringobjects dc2.child.root.
contoso.com 70ff33ce-2f41-4bf4-b7ca-7fa71d4ca13e
«dc=domaindnszones,dc=root,dc=contoso,dc=com»
REM Команды для удаления устаревших объектов
REM из раздела домена Child.
Repadmin /removelingeringobjects dc1.root.contoso.
com 0c559ee4-0adc-42a7-8668-e34480f9e604
«dc=child,dc=root,dc=contoso,dc=com»
Repadmin /removelingeringobjects dc2.root.contoso.
com 0c559ee4-0adc-42a7-8668-e34480f9e604
«dc=child,dc=root,dc=contoso,dc=com»
Repadmin /removelingeringobjects childdc2.child.root.
contoso.com 0b457f73-96a4-429b-ba81-1a3e0f51c848
«dc=child,dc=root,dc=contoso,dc=com»
Repadmin /removelingeringobjects trdc1.treeroot.
fabrikam.com 0c559ee4-0adc-42a7-8668-e34480f9e604
«dc=child,dc=root,dc=contoso,dc=com»
REM Команды для удаления устаревших объектов
REM из раздела DomainDNSZones-Child.
Repadmin /removelingeringobjects childdc2.child.root.
contoso.com 0c559ee4-0adc-42a7-8668-e34480f9e604
«dc=domaindnszones,dc=child,dc=root,dc=contoso,dc=com»
REM Команды для удаления устаревших объектов
REM из раздела домена TreeRoot.
Repadmin /removelingeringobjects childdc1.child.root.
contoso.com 0b457f73-96a4-429b-ba81-1a3e0f51c848
«dc=treeroot,dc=fabrikam,dc=com»
Repadmin /removelingeringobjects childdc2.child.root.
contoso.com 0b457f73-96a4-429b-ba81-1a3e0f51c848
«dc=treeroot,dc=fabrikam,dc=com»
Repadmin /removelingeringobjects dc1.root.contoso.com
0b457f73-96a4-429b-ba81-1a3e0f51c848
«dc=treeroot,dc=fabrikam,dc=com»
Repadmin /removelingeringobjects dc2.root.contoso.com
0b457f73-96a4-429b-ba81-1a3e0f51c848
«dc=treeroot,dc=fabrikam,dc=com»

This article describes the symptoms, cause, and resolution steps for issues when Active Directory replication fails with error 1908: Could not find the domain controller for this domain.

This article is part of a series on troubleshooting Active Directory replication error, and is also one of the errors reported by the Active
Directory Replication Status Tool
(ADREPLSTATUS). If you encounter a new symptom, cause, or resolution for this error, we encourage you to add information about your experience in appropriate section.

Table of Contents

  • Symptoms
  • Cause
  • Resolution

Symptoms 

  1. REPADMIN.exe reports that replication attempt has failed with status 1908.

    REPADMIN commands that commonly cite the 1908 status include but are not limited to:

    • REPADMIN /ADD
    • REPADMIN /REPLSUM *
    • REPADMIN /REHOST
    • REPADMIN /SHOWVECTOR /LATENCY
    • REPADMIN /SHOWREPS
    • REPADMIN /SHOWREPL

    Sample output from «repadmin /syncall» command:

    Syncing all NC's held on CONTOSO-DC02.

    Syncing partition: DC=ForestDnsZones,DC=Contoso,DC=com

    CALLBACK MESSAGE: Error contacting server 1b136427-14f0-448a-965c-

    9cbb61400fcd._msdcs.Contoso.com (network error): 1908 (0x774):

    Could not find the domain controller for this domain.

    Sample output from «repadmin /showreps» command:

    DC=ForestDnsZones,DC=Contoso,DC=com

    HQContoso-DC02 via RPC

    DC object GUID:1b136427-14f0-448a-965c-9cbb61400fcd._msdcs.Contoso.com/

    Last attempt @ <DATE> <TIME> failed, result 1908 (0x774):

    Could not find the domain controller for this domain.

    <# consecutive failure>

    <Last
    Success>

  2. NTDS KCC, NTDS Replication events with the 1908 status are logged in the directory service event log.

    Active Directory events that commonly cite the 1908 status include but are not limited to:

       

    Event
    Source
    Event
    Category
    Event ID Event
    Type
    Event String
    NTDS KCC Knowledge
    Consistency
    Checker
    1926 Warning The attempt to establish a replication link to a read-only directory partition with the following parameters failed.
    NTDS KCC Knowledge
    Consistency
    Checker
    1925 Warning The attempt to establish a replication link for the following writable directory partition failed.
    NTDS Replication Replication 1943 Error Active Directory was unable to remove all of the lingering objects on the local domain controller. However, some lingering objects might have been deleted on this domain controller before this operation stopped.
    All objects had their existence verified on the following source domain controller.
    NTDS Replication Setup 1125 Error The Active Directory Domain Services Installation Wizard (Dcpromo) was unable to establish connection with the following domain controller.

        
       

    These events will contain the following sub Error Value:

    Additional Data
    Error Value:
    Could not find the domain controller for this domain. 1908

  3. When trying to force replication in Active Directory Sites and Services console (dssite.msc) via the «Replicate now» option, we may receive the error below:

    Dialog title text: Replicate Now

    Dialog message text: The following error occurred during the attempt to synchronize naming context <Naming Context> from Domain Controller <Source-DC-Name> to Domain Controller <Destination-DC-Name>:  “Could not find the domain controller
    for this domain.”

    Failure Message: “Could not find the domain controller for this domain.”

  4. Domain Controller Promotion/Demotion

    Dialog Box on Dcpromo.exe Failure:

    Dialog title text: Active Directory Installation Wizard

    Dialog message text: Active Directory could not create the NTDS Settings object for this Domain Controller CN=NTDS Settings,CN=<DC_Name>,CN=Servers,CN=<SiteName>,CN=Sites,CN=Configuration,<DomainDN> on the remove domain controller <Remote_DC_FQDN>. 
    Ensure the provided network credentials have sufficient permissions.

    Failure Message: “Could not find the Domain Controller for this domain.”

    Buttons in Dialog: OK

    DCPromo.log file reports(%windir%debugDCPromo.log):

    [INFO] Error - Active Directory Domain Services could not create the NTDS Settings object for this Active Directory Domain Controller CN=NTDS Settings,CN=CONTOSO-DC02,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=Contoso,DC=com
    on the remote AD DC contoso-dc01.Contoso.com. Ensure the provided network credentials have sufficient permissions. (1908)

    [INFO] NtdsInstall for Contoso.com returned 1908

    [INFO] DsRolepInstallDs returned 1908

    [ERROR] Failed to install to Directory Service (1908)

Cause

Error Code 1908 represents the error ERROR_DOMAIN_CONTROLLER_NOT_FOUND which displays as «Could not find the domain controller for this domain.»  This error has two primary causes:

  1. The destination DC is unable to contact a Key Distribution Center(KDC)
  2. The computer is experiencing Kerberos related errors

Resolution

  1. Verify the Key Distribution Service is running on the Target Domain Controller

    Discover the Kerberos Key Distribution Center you are contacting. This can be discovered by using a packet capture program like Network Monitor 3.4 (Available on

    http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=4865)

      1. Use Network Monitor to capture the reproduced error message.
      2. Review the packet capture for the DNS query for a KDC:

        Sample Address Queries:

        _kerberos._tcp._<SiteName>._sites.dc._msdcs.<Domain>.com
        _kerberos._tcp.dc._msdcs.<Domain>.com

      3. Review for any DcLocator Traffic:

        Sample Network Monitor 3.4 capture of DcLocator Traffic. In this example 10.0.1.11 is the KDC we discovered and 10.0.1.10 is the client requesting a ticket. This uses the default Network Monitor Column layout

        Frame # Time and Date Time Offset Source IP Destination IP Details
        42 3/7/2012 3.6455760 10.0.1.10 10.0.1.11 LDAPMessage LDAPMessage:Search Request, MessageID: 371 *** This packet is a UDP LDAP call for DC Locator looking for Netlogon***
        43 3/7/2012 3.6455760 10.0.1.11 10.0.1.10 NetLogon NetLogon:LogonSAMPauseResponseEX (SAM Response when Netlogon is paused): 24 (0x18)
      4. Verify that 10.10.1.11’s KDC and Netlogon services are running.
        On discovered Domain Controller(10.0.1.11) verify the KDC and Netlogon service status with SC Query

        Example — Query the KDC service with: «SC Query KDC» and the Netlogon Service with: «SC Query Netlogon»
        These commands should return «State: Running»

  2. Verify that the destination Domain Controller is Advertising as a Key Distribution Center

    Use DCDIAG.exe to verify that the destination Domain Controller is advertising. From a CMD.exe prompt run the following:

           C:DCDiag.exe /v /test:Advertising /test:SysVolCheck

    Verify that the Domain Controller passes the Advertising and SYSVOLCHeck tests and is advertising as a Key Distribution Center and SysVol is ready. If SysVol is not ready, the server will not be able to advertise as a Domain Controller. 

    Testing server:<SiteName><DC
    Name>

    Starting test: Advertising

    The DC <DC
    Name> is advertising itself as a DC and having a DS

    The DC <DC
    Name> is advertising as an LDAP server

    The DC <DC
    Name> is advertising as having a writeable directory

    The DC <DC
    Name> is advertising as a Key Distribution Center

    The DC <DC
    Name> is advertising as a time server

    The DS <DC
    Name> is advertising as a GC.

    Starting Test: SysVolCheck

    * The File Replication Service SYSVOL ready test

    File Replication Service's SYSVOL is ready

    ……………………………………..<DC
    Name> passed test SysVolCheck

       

  3. Verify that source computer and target computer are within 5 minutes of each other.
  4. Check for any Kerberos failures
    1. Enable Kerberos Event Logging on Client Machine and Domain Controllers in site.
    2. KB: 262177 How to enable Kerberos event logging
    3. Troubleshooting Kerberos
title description ms.date author ms.author manager audience ms.topic ms.prod localization_priority ms.reviewer ms.custom ms.technology

AD Replication error 1908

Provides a resolution for troubleshooting AD Replication error 1908, which is Could not find the domain controller for this domain.

3/24/2022

Deland-Han

delhan

dcscontentpm

itpro

troubleshooting

windows-server

medium

kaushika

sap:domain-join-issues, csstroubleshoot

windows-server-active-directory

Troubleshooting AD Replication error 1908: Could not find the domain controller for this domain

This article provides a resolution for troubleshooting AD Replication error 1908: Could not find the domain controller for this domain.

Applies to:   Windows Server 2019, Windows Server 2016, Windows Server 2012 R2
Original KB number:   2712026

[!NOTE]
Home users: This article is only intended for technical support agents and IT professionals. If you’re looking for help with a problem, please ask the Microsoft Community.

Symptoms

  1. REPADMIN.exe reports that replication attempt has failed with status 1908.

    REPADMIN commands that commonly cite the 1908 status include but are not limited to:

    • REPADMIN /ADD
    • REPADMIN /REPLSUM *
    • REPADMIN /REHOST
    • REPADMIN /SHOWVECTOR /LATENCY
    • REPADMIN /SHOWREPS
    • REPADMIN /SHOWREPL

    Sample output from repadmin /syncall command:

    Syncing all NC's held on CONTOSO-DC02.  
    Syncing partition: DC=ForestDnsZones,DC=Contoso,DC=com  
    CALLBACK MESSAGE: Error contacting server 1b136427-14f0-448a-965c-  
    9cbb61400fcd._msdcs.Contoso.com (network error): 1908 (0x774):  
     Could not find the domain controller for this domain.  

    Sample output from repadmin /showreps command:

    DC=ForestDnsZones,DC=Contoso,DC=com  
    HQContoso-DC02 via RPC  
    DC object GUID:1b136427-14f0-448a-965c-9cbb61400fcd._msdcs.Contoso.com/  
    Last attempt @ <DATE> <TIME> failed, result 1908 (0x774):  
    Could not find the domain controller for this domain.  
    <# consecutive failure>  
    <Last Success>  
  2. NTDS KCC, NTDS Replication events with the 1908 status are logged in the directory service event log.

    Active Directory events that commonly cite the 1908 status include but are not limited to:

    Event Source Event Category Event ID Event Type Event String
    NTDS KCC Knowledge Consistency Checker 1926 Warning The attempt to establish a replication link to a read-only directory partition with the following parameters failed.
    NTDS KCC Knowledge Consistency Checker 1925 Warning The attempt to establish a replication link for the following writable directory partition failed.
    NTDS Replication Replication 1943 Error Active Directory was unable to remove all of the lingering objects on the local domain controller. However, some lingering objects might have been deleted on this domain controller before this operation stopped. All objects had their existence verified on the following source domain controller.
    NTDS Replication Setup 1125 Error The Active Directory Domain Services Installation Wizard (Dcpromo) was unable to establish connection with the following domain controller.

    These events will contain the following sub Error Value:

    Additional Data
    Error Value:
    Could not find the domain controller for this domain. 1908

  3. When trying to force replication in Active Directory Sites and Services console (dssite.msc) via the «Replicate now» option, we may receive below error:

    Dialog title text: Replicate Now

    Dialog message text: The following error occurred during the attempt to synchronize naming context <Naming Context> from Domain Controller <Source-DC-Name> to Domain Controller <Destination-DC-Name>: Could not find the domain controller for this domain.

    Failure Message: Could not find the domain controller for this domain.

    Buttons in Dialog: OK

  4. Domain Controller Promotion/Demotion

    Dialog Box on Dcpromo.exe Failure:

    Dialog title text: Active Directory Installation Wizard

    Dialog message text: Active Directory could not create the NTDS Settings object for this Domain Controller CN=NTDS Settings,CN=<DC_Name>,CN=Servers,CN=<SiteName>,CN=Sites,CN=Configuration,<DomainDN> on the remove domain controller <Remote_DC_FQDN>. Ensure the provided network credentials have sufficient permissions.

    Failure Message: Could not find the Domain Controller for this domain.

    Buttons in Dialog: OK

    DCPromo.log file reports(%windir%debugDCPromo.log):

    [INFO] Error — Active Directory Domain Services could not create the NTDS Settings object for this Active Directory Domain Controller CN=NTDS Settings,CN=CONTOSO-DC02,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=Contoso,DC=com on the remote AD DC contoso-dc01.Contoso.com. Ensure the provided network credentials have sufficient permissions. (1908)
    [INFO] NtdsInstall for Contoso.com returned 1908
    [INFO] DsRolepInstallDs returned 1908
    [ERROR] Failed to install to Directory Service (1908)

Cause

Error Code 1908 represents the error that displays as «Could not find the domain controller for this domain.» This error has two primary causes:

  1. The destination DC is unable to contact a Key Distribution Center(KDC)

  2. The computer is experiencing Kerberos related errors

An important concept to understand for this scenario is that the KDC used for replication operations may be:

a. The destination DC
b. The source DC
c. An entirely different DC (not the source or destination DC).

Resolution

  1. Verify the Key Distribution Service is running on the Target Domain Controller

    Discover the Kerberos Key Distribution Center you are contacting. It can be discovered by using a packet capture program like Network Monitor 3.4 (Available here.)

    1. Use Network Monitor to capture the reproduced error message. (You may need to stop the DNS client service first so that you see the DNS query traffic)

    2. Review the packet capture for the DNS query for a KDC:
      Sample Address Queries:

      _kerberos.tcp.<SiteName>._sites.dc._msdcs.<Domain>.com
      _kerberos._tcp.dc._msdcs.<Domain>.com

    3. Review for any DCLocator Traffic:
      Sample Network Monitor 3.4 capture of DcLocator Traffic. In this example, 10.0.1.11 is the KDC we discovered and 10.0.1.10 is the client requesting a ticket. It uses the default Network Monitor Column layout.

      Frame # Time and Date Time Offset Source IP Destination IP Details
      42 3/7/2012 3.6455760 10.0.1.10 10.0.1.11 LDAPMessage: Search Request, MessageID: 371 *** This packet is a UDP LDAP call for DC Locator looking for Netlogon***
      43 3/7/2012 3.6455760 10.0.1.11 10.0.1.10 NetLogon:LogonSAMPauseResponseEX (SAM Response when Netlogon is paused): 24 (0x18)
    4. Verify that 10.10.1.11’s KDC and Netlogon services are running.
      On discovered Domain Controller(10.0.1.11), verify the KDC and Netlogon service status with SC Query

      Example — Query the KDC service with: «SC Query KDC» and the Netlogon Service with: «SC Query Netlogon»
      These commands should return «State: Running»

  2. Verify that the destination Domain Controller is Advertising as a Key Distribution Center
    Use DCDIAG.exe to verify that the destination Domain Controller is advertising. From a CMD.exe prompt, run the following command:

    C:DCDiag.exe /v /test:Advertising /test:SysVolCheck

    Verify that the Domain Controller passes the Advertising and SYSVOLCHeck tests and is advertising as a Key Distribution Center and SysVol is ready. If SysVol is not ready, the server will not be able to advertise as a Domain Controller.

    Testing server:<SiteName><DC Name>
    Starting test: Advertising
    The DC <DC Name> is advertising itself as a DC and having a DS
    The DC <DC Name> is advertising as an LDAP server
    The DC <DC Name> is advertising as having a writeable directory
    The DC <DC Name> is advertising as a Key Distribution Center
    The DC <DC Name> is advertising as a time server
    The DS <DC Name> is advertising as a GC.

    Starting Test: SysVolCheck
    * The File Replication Service SYSVOL ready test
    File Replication Service’s SYSVOL is ready
    ..<DC Name> passed test SysVolCheck

  3. Verify that source computer and target computer are within 5 minutes of each other.

  4. Check for any Kerberos failures

    1. Enable Kerberos Event Logging on Client Machine and Domain Controllers in site.
    2. KB: 262177 How to enable Kerberos event logging
    3. Troubleshooting Kerberos

More information

This error is one of the featured exercises in the following TechNet hands-on lab:
TechNet hands-on lab: Troubleshooting Active Directory replication errors
In this lab, you will walk through the troubleshooting, analysis, and implementation phases of commonly encountered Active Directory replication errors. You will use a combination of ADREPLSTATUS, repadmin.exe, and other tools to troubleshoot a five DC, three-domain environment. AD replication errors encountered in the lab include -2146893022, 1256, 1908, 8453 and 8606.

I am having some issues with DHCP from one server at the moment, so I thought I would check the status of AD.  I received the error that is in the subject line.

DC-B is saying that it cannot find DC-A, but DC-A can find DC-B.

DC-A can find DC-C, DC-C can find all DC’s and DC-B can find DC-C.

This has all been working until recently and I do not know what has broken it.  DC-A which is the one that also is having issues with DHCP is also the one that holds the FSMO roles.

We recently changed AV Solution, but this is installed on all 3 DC’s with the same policy rules in place.

Any ideas?? I am really baffled now!

Пролог:
Были 2 машина с Hyper-V, на них были по 1-му контроллеру домена SRV-DC1 и SRV-DC2. SRV-DC1 как всегда имел статус GC другой DC.
SRV-DC2 сдох полностью, SRV-DC1 на грани, но домен держит.

Поднята машина на WS2012R2 (DC-1) и сделана реплика на него SRV-DC1. Затем нужно было передать все бразды правление новой машине DC-1, с помощью ntdsutil сделан захват всего на свете новой машиной. habrahabr.ru/post/145221 погала эта статья.

И я такой счастливый думаю, отключу как я полудохлый SRV-DC1, и при отключении новая машина начала вопить, что не видит домена, AD и вообще в событиях появляются ошибки :
— Веб-службам Active Directory не удалось определить, является ли данный компьютер сервером глобального каталога.

— Службе репликации DFS не удалось установить подключение к партнеру SRV-DC1 по группе репликации Domain System Volume. Причиной этой ошибки может быть недоступный узел или незапущенная служба репликации DFS на сервере.
DNS-адрес партнера: SRV-DC1.OTVC.RU

— Доменным службам Active Directory не удается подключиться к глобальному каталогу.
Дополнительные данные
Значение ошибки:
1355 Указанный домен не существует или к нему невозможно подключиться.
Внутренний идентификатор:
32013c0
Действие пользователя:
Убедитесь, что глобальный каталог находится в лесу и доступен для контроллера домена. Для диагностики можно использовать программу NLTEST.

Вот такая беда. Уже взял бубин, но пока не помогает. Думаю все из-за реплики. Есть мнения?
4773f35d678b41958aaf4dea65d2f5f9.JPG

  • При репликации возникла ошибка 1256
  • При рендеринге вылетает ошибка
  • При резервном копировании 1с выдает ошибку
  • При редактировании элемента произошла ошибка элемент не был сохранен bitrix медиабиблиотека
  • При редактировании текста модуля произошла внутренняя ошибка 1с