При понижении роли контроллера домена Active Directory может появиться следующая ошибка:
Операция не выполнена по следующей причине:
Доменным службам Active Directory не удалось передать оставшиеся в разделе DC=ForestDnsZones,DC=test,DC=local данные контроллеру домена Active Directory \SRV-1.test.local.
«В службе каталогов утеряна обязательная информация и невозможно определить владельца передаваемых монопольных операций (FSMO).»
или на английском:
Active Directory Domain Services could not transfer the remaining data in directory partition DC=ForestDNSZones,DC= test ,DC=local to Active Directory Domain Controller \SRV-1.DOMAIN.LOCAL.
“The directory service is missing mandatory configuration information, and is unable to determine the ownership of floating single-master operation roles.
Данная ошибка может возникнуть из-за того, что ранее роли FSMO были переданы не корректно другому КД, например в случае выхода из строя основного КД, роли были принудительно захвачены резервным контроллером.
В интернетах ходит одна и та же инструкция от сайта к сайту, например тут. Инструкция в целом рабочая, но не совсем понятная тому, кто с этим никогда не сталкивался.
Попробую решить данную проблему и написать более подробную инструкцию по решению данной проблемы.
Первым делом, нам необходимо подключиться к текущему КД-хозяину инфраструктуры (Infrastructure master). Чтобы выяснить, какой из КД держит роли, выполним запрос в командной строке:
> netdom query fsmo
В ответ получим следующую информацию:
Хозяин схемы SRV-DC2.test.local
Хозяин именования доменов SRV-DC2.test.local
PDC SRV-DC2.test.local
Диспетчер пула RID SRV-DC2.test.local
Хозяин инфраструктуры SRV-DC2.test.local
Команда выполнена успешно.
Подключаемся по RDP к серверу, указанному напротив “Хозяин инфраструктуры” и выполняем следующие операции в консоли “Редактирование ADSI” (adsiedit.msc).
Найдем DN (distinguishedName) контроллера с ролью “Хозяин инфраструктуры”, т.е. нашего сервера, к которому подключены
- Для этого в консоли ADSIedit щелкаем ПКМ по корню консоли и выбираем “Подключение к…”.
- В открывшемся окне выбираем “Точка подключения” => “Выберите известный контекст именования” => “Конфигурация”, жмем “ОК”.
- Далее в дереве консоли движемся по следующему пути: “CN=Configuration” => “CN=Sites” => “CN=Default First-Site-Name” (или ваше имя сайта) => “CN=Servers” => “CN=Имя_вашего_КД” (который является хозяином инфраструктуры) => “CN=NTDS Settings”.
- Жмем ПКМ по разделу “CN=NTDS Settings” и выбираем “Свойства”.
- В открывшемся окне находим атрибут “distinguishedName” и открываем его двойным щелчком ЛКМ, копируем значение атрибута во временный текстовый файлик. Значение будет примерно таким: “CN=NTDS Settings,CN=SRV-DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=local”. Закрываем редактор атрибутов и свойства “CN=NTDS Settings”.
Пояснения в виде скриншотов:
Найдем и изменим атрибут fSMORoleOwner в контексте ForestDnsZones
- Для этого в консоли ADSIedit снова щелкаем ПКМ по корню консоли и выбираем “Подключение к…”.
- В открывшемся окне, для удобства введем “Имя: ForestDnsZones” и выберем “Точка подключения” => “Выберите или введите различающееся имя или контекст именования” => “DC=ForestDnsZones,DC=test,DC=local”, жмем “ОК”. Естественно, вместо “DC=test,DC=local” указываем свой домен.
- В дереве консоли открываем раздел “DC=ForestDnsZones,DC=test,DC=local”, а в окне содержимого находим объект “CN=Infrastructure”, открываем его свойства двойным щелчком ЛКМ.
- В свойствах находим атрибут “fSMORoleOwner” и изменяем его значение (двойной клик ЛКМ) на значение DN нашего контроллера, которое мы копировали во временный текстовый файл. Сохраняем изменения нажатием на “Ок” в редакторе и “Ок” в свойствах.
Пояснения в виде скриншотов:
Найдем и изменим атрибут fSMORoleOwner в контексте DomainDnsZones
- Для этого в консоли ADSIedit снова щелкаем ПКМ по корню консоли и выбираем “Подключение к…”.
- В открывшемся окне, для удобства введем “Имя: DomainDnsZones” и выберем “Точка подключения” => “Выберите или введите различающееся имя или контекст именования” => “DC=DomainDnsZones,DC=test,DC=local”, жмем “ОК”. Как и ранее, вместо “DC=test,DC=local” указываем свой домен.
- В дереве консоли открываем раздел “DC=DomainDnsZones,DC=test,DC=local”, а в окне содержимого находим объект “CN=Infrastructure”, открываем его свойства двойным щелчком ЛКМ.
- В свойствах находим атрибут “fSMORoleOwner” и изменяем его значение (двойной клик ЛКМ) на значение DN нашего контроллера, которое мы копировали во временный текстовый файл. Сохраняем изменения нажатием на “Ок” в редакторе и “Ок” в свойствах.
Пояснения в виде скриншотов:
Указываем контекст Находим и открываем свойства объекта CN=Infrastructure Находим и изменяем атрибут
После выполнения всех манипуляций, ошибка будет исправлена и можно будет снова пробовать понижать роль КД до рядового сервера.