DsRemoveDsDomainW error 0x21a2

Расчищал сегодня сервер Hyper-V с тестовыми виртуальными машинами. Больно много их накопилось — место на диске много занимают. Многие давно не запускались.

В частности, наткнулся на набор из трех контроллеров домена (под Win2K8 R2) в двух доменах в одном дереве (и двух разных сайтах) — два в корневом домене и один в дочернем. Это я хотел в свое время проверить, исправили ли в программе установки Exchange 2010 в SP2 некую древнюю ошибку (сейчас уже неважно, какую), а потому так сложно . Не запускались они аж с марта, а потому репликация AD между ними умерла (tombstone lifetime exceeded — 180 дней уже прошло, однако). И решил я два контроллера доменов удалить, вместе с дочерним доменом, а один — оставить для будущих экспериментов: одиночный КД репликации не требует, а потому — не портится. Расчищать приходится, естественно, через ntdsutil, т.к. штатное понижение КД через мастер dcpromo при отсутствии репликации не работает.

Сказано — сделано. Запускаю ntdsutil, подключаюсь к единственному оставшемуся серверу, набираю metadata cleanup, выбираю (select operation target — list domains — select domain 1 ) дочерний домен, в нем (list sites — select site 1 — list servers for domain in site — select server 0) — единственный КД, возвращаюсь из режима выбора, и удаляю этот контроллер (remove selected server). После чего пытаюсь удалить домен (remove selected domain) и получаю отлуп:

DsRemoveDsDomainW error 0x2015(The directory service can perform the requested operation only on a leaf object).

Ну, причина отлупа мне сразу становится очевидной: вспоминаю, что DNS в дочернем домене я настраивал, причем — стандартным образом, с хранением зоны домена в подразделе DomainDNSZones («область репликации — все DNS-серверы указанного домена»). Поминаю недобрым словом Microsoft за то, что они не удосужились добавить удаление этого раздела вместе с разделом домена, и принимаюсь за его удаление уже известным мне способом: выбираю (select operation target — list n c — select n c 6), возвращаюсь из режима выбора и пытаюсь удалить контекст именования: remove selected n c. Хрен там — получаю совершенно неожиданную ошибку:

DsRemoveDsDomainW error 0x21a2(The FSMO role ownership could not be verified because its directory partition has not replicated successfully with at least one replication partner).

Тут бы мне сразу остановиться и призадуматься, но… Пытаюсь зайти с другой стороны: выхожу из режима metadata cleanup, захожу в режим partition management и пытаюсь удалить нужный контекст именования оттуда (delete nc DC=DomainDNSZones,DC=subdom,DC=domain,DC=loc). Получаю ту же ошибку.
Следующие минут пятнадцать-двадцать проходят в поиске решения сначала в MS Knowledge Base (его там нет), затем — на сайте Microsoft (тоже нет), затем — во всем интернете (первые несколько релевантных ссылок ведут на вопросы без ответов). И вот тут я понял, что придется думать самому.
Вчитавшись внимательно в текст, я задумался, а о каком FSMO role ownership идет речь. Ведь явно — не об infrastructure master раздела для зон DNS: его в любом случае быть не должно, т.к. контроллера домена, содержащего этот раздел больше ни одного нет.
И тут меня осенило.Поскольку репликация в момент запуска текущего КД (владеющего всем ролями FSMO) была в развалившемся состоянии, то требования начальной синхронизации для всех этих ролей (подробности см.  в MS KB) выполнена не была, а потому операции, требующие использования соответствующий роли (в нашем случае — domain naming master) недоступны. Именно об этом мне и пыталась сообщить Windows.
Ну, а коли причина проблемы установлена, то решить ее теперь — дело простое. Т.к. все остальные контроллеры домена предназначены к уничтожению, то нужно удалить их из Active Directory. Контроллер поддомена я удалил, но ведь остался еще один дополнительный контроллер корневого домена: я отложил его удаление на потом — а зря! Удаляю этот контроллер через консоль AD Sites and Services (можно и через ntdsutil, но нужная консоль у меня уже была открыта), на всякий случай вручную прогоняю KCC (через локальное меню оставшегося сервера в той же консоли). Теперь повторяю удаление контекста именования раздела приложений для зон DNS, затем — удаление поддомена. Всё сработало. Победа разума над искусственным интеллектом состоялась.

Мораль сей басни такова: прежде чем удалять поддомены, почините репликацию с оставшимися в живых КД. Встретив ошибку 0x21a2, удалите все мертвые КД, и добейтесь успешной репликации с оставшимися в живых (если таковые остались).

Реклама
  1. 30.04.2015

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: