Назад | Перейти на главную страницу

Ошибка при продвижении сервера 2012 R2 к контроллеру домена в домене 2003

При попытке продвинуть машину 2012 R2 в качестве контроллера домена в домене уровня леса \ домена 2003 года я получаю следующую ошибку при прохождении процедур adprep и forestprep:

Ошибка выполнения ADPrep -> System.ComponentModel.Win32Exception (0x80004005): устройство, подключенное к системе, не работает. Просмотрите файлы журнала в каталоге C: \ Windows \ debug \ adprep \ logs \ 20160128201714 для получения подробной информации.

Журнал ADPrep показывает следующую ошибку:

[2016/01/28: 20: 17: 14.402] В ldifde передается командная строка ldifde -i -f "C: \ Windows \ system32 \ adprep \ sch32.ldf" -s "ral-ad1.AD.mydomain. com "-h -j" C: \ Windows \ debug \ adprep \ logs \ 20160128201714 "- $" C: \ Windows \ system32 \ adprep \ schupgrade.cat "[2016/01/28: 20: 17: 33.382] ОШИБКА : Импорт из файла C: \ Windows \ system32 \ adprep \ sch32.ldf завершился неудачно. Файл с ошибкой сохраняется в C: \ Windows \ debug \ adprep \ logs \ 20160128201714 \ ldif.err.32.

Если возникает ошибка «Недостаточно прав» (код ошибки Ldap 50), убедитесь, что указанный пользователь имеет права на чтение и запись объектов в контейнерах схемы и конфигурации, или выйдите из системы и войдите в систему как пользователь с этими правами и перезапустите forestprep. . В большинстве случаев для запуска forestprep достаточно быть членом как Schema Admins, так и Enterprise Admins. [2016/01/28: 20: 17: 33.393] Adprep не смог обновить схему на хозяине схемы.

[Статус / Последствия]

Схема не будет восстановлена ​​в исходное состояние.

[Действия пользователя]

Для получения подробной информации проверьте файл журнала Ldif.err в каталоге C: \ Windows \ debug \ adprep \ logs \ 20160128201714. [2016/01/28: 20: 17: 33.393] Adprep не смог обновить информацию о лесах.

[Статус / Последствия]

Adprep требует доступа к существующей информации о масштабе леса от хозяина схемы для выполнения этой операции.

Журнал ldiff.err.32 показывает

15: CN = Пользователь, CN = Схема, CN = Конфигурация, DC = AD, DC = mydomain, DC = com DN входа: CN = Пользователь, CN = Схема, CN = Конфигурация, DC = AD, DC = mydomain, DC = com Добавить ошибку при начале записи в строке 232: Нежелание выполнять

Ошибка на стороне сервера: 0x20c5 Ошибка обновления схемы: класс в списке вспомогательных классов не существует или не является вспомогательным классом.

Расширенная ошибка сервера:

000020C5: SvcErr: DSID-03260249, проблема 5003 (WILL_NOT_PERFORM), данные 8389

Строка 232 файла sch32.ldf выглядит следующим образом

dn: CN = Пользователь, CN = Схема, CN = Конфигурация, DC = X changetype: ntdsSchemaModify добавить: systemMayContain systemMayContain: 1.2.840.113556.1.4.1929

Кажется, он пытается изменить схему пользователя и терпит неудачу. Я подтвердил, что моя учетная запись находится в административных группах Schema \ Domain \ Enterprise. Я также проверил, что эти группы имеют доступ на запись в контейнер схемы с помощью adsiedit. Ближайшее попадание, которое я смог найти, было вот этот. Там, где MS MVP Нед Пайл указал в комментариях, это могло быть вызвано сторонним инструментом, некорректно расширяющим атрибут ранее. Рекомендуя пользователю обратиться в службу поддержки Microsoft. Я предполагаю, что Microsoft больше не поддерживает Windows 2003, так что этот путь может не уйти далеко. Кто-нибудь видел это раньше? Спасибо за любую помощь.

Вы можете быть удивлены ответом, который вы получите от службы поддержки Microsoft, поскольку эта проблема, похоже, связана не столько с поддержкой Server 2003, сколько с препятствием, которое мешает вам перейти на 2012 R2. По крайней мере, вы должны так крутить.

Я также почти уверен, что это связано с настройкой схемы. Обычно это стороннее программное обеспечение, но иногда может быть что-то вроде неудачной установки Exchange. Вы, вероятно, можете изменить свою схему обратно в форму, чтобы вы могли ее обновить, но помните, что это может привести к поломке программного обеспечения, которое изначально внесло изменения в схему.

Следующее предоставляется без гарантии и без гарантии. Попробуйте это на свой страх и риск. Если возможно, попробуйте сначала в лаборатории. Правильнее всего было бы позвонить в Microsoft и посмотреть, помогут ли они вам, прежде чем пытаться сделать это самостоятельно.

Выгрузите определение класса User из схемы:

ldifde -d "CN=User,CN=Schema,CN=Configuration,DC=contoso,DC=com" -f user.txt

Поищите в файле любые auxiliaryClass поля. Вы, наверное, увидите shadowAccount, posixAccount, и, возможно, некоторые другие.

Для каждого из этих вспомогательных классов также выгрузите определения их схем, точно так же, как вы только что сбросили определение класса User.

В каждом из этих определений вспомогательного класса проверьте их objectClassCategory свойство. Это 1? Если да, то должно быть 3. Измените на 3.

objectClassCategory документируется здесь:

https://msdn.microsoft.com/en-us/library/ms679014(v=vs.85).aspx

4 байта. Конструктивная 1, реферат 2, вспомогательная 3. Класс 88, 0 использовать не следует.

Вспомогательный класс должен иметь значение 3. Если вспомогательный класс имеет значение 1, значит, кто-то допустил ошибку при изменении схемы. Измените его на 3 и позвольте AD реплицировать схему, затем попробуйте adprep очередной раз.

Сообщение об ошибке, которое вы опубликовали:

Ошибка на стороне сервера: 0x20c5 Ошибка обновления схемы: класс в списке дополнительных классов не существует или не является вспомогательным классом.

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