среда, 20 июня 2012 г.

При понижении домен контроллера (dcpromo) ошибка - "Active Directory Domain Services could not transfer the remaining data in directory partition / The directory service is missing mandatory configuration information, and is unable to determine the ownership of floating single-master operation roles"

AD DS Operation Failed – directory service is missing mandatory configuration – Event ID 2091 – FSMO Role Broken


Active Directory Domain Services could not transfer the remaining data in directory partition DC=ForestDNSZones,DC=DOMAIN,DC=LOCAL to Active Directory Domain Controller \\SBS.DOMAIN.LOCAL.

“The directory service is missing mandatory configuration information, and is unable to determine the ownership of floating single-master operation roles.

Проверил что все роли уже перенесены с данного сервера:
netdom query /domain:<domainname> fsmo
(действительно все ноли уже на втором сервере)

Проблема оказалась в атрибуте fSMORoleOwner
Выяснилось это в результате выполнения двух комманд:

1) dsquery * cn=InfrastrucuremDC=DomainDnsZones,dc=contoso,dc=com -attr fSMORoleOwner

2) LDIFDE -f Infra_DomainDNSZones.ldf -d "CN=Infrastructure, DC=DomainDnsZones, DC=contoso, DC=com" fSMORoleOwner -l
По первой команде всё согласно запросе netdom query. А вот второй выдал следующий вывод(в файл Infra_DomainDNSZones.ldf ):


dn: CN=Infrastructure,DC=DomainDnsZones,DC=contoso,DC=com
changetype: add
fSMORoleOwner:
 CN=NTDS Settings,CN=EVIL,CN=Servers,CN=Mitino,CN=Sites,CN=Configuration,DC=contoso,DC=com

- CN=EVIL - это как сервер с которого я убирал роль домен-контроллера.

Посему пришлось прибегнуть к ADSIedit.
(некоторым помогает скрипт отсюда http://support.microsoft.com/kb/949257)
Решение:

1. Найдите DN Infrastructure Master

- Откройте Adsiedit.msc
- Подключитесь к серверу что держит роль Infrastructure
- Подключитель с CN=Configuration,DC=<domain>,DC=<suffix>

- Разверните CN=Sites -> CN=”Site of the IM” -> CN=Servers -> CN=”Infrasturcte Master”
- Откройте свойства CN=NTDS Settings
- Найдите Find DistinguishedName и скопируйте значение

2. Поменяйте ForestDnsZone fSMORoleOwner 

- Откройте Adsiedit.msc
- Подключитесь к серверу что держит роль Infrastructure
- Подключитесь к DC=ForestDnsZones,DC=<domain>,DC=<suffix>
- Откройте свойства Infrastructure object
- Измените значение объекта на то что вы скопировали в буфер. Оно должно быть такого формата:
CN=NTDS Settings,CN=<hostname>,CN=Servers,CN=<sitename>,CN=Sites, CN=Configuration,DC=domain,DC=local


3. Поменяйте DomainDnsZone fSMORoleOwner 

- Откройте Adsiedit.msc
- Подключитесь к серверу что держит роль Infrastructure
- Подключитесь к DC=DomainDnsZones,DC=<domain>,DC=<suffix>
- Откройте свойства Infrastructure object
- Измените значение объекта на то что вы скопировали в буфер. Оно должно быть такого формата:
CN=NTDS Settings,CN=<hostname>,CN=Servers,CN=<sitename>,CN=Sites, CN=Configuration,DC=domain,DC=local
*Вы должны подключаться к DC, который является Infrastructure FSMO. Иначе наткнётесь на ошибки.

1 комментарий:

  1. В 3-м пункте опечатка. Должно быть DC=DomainDnsZones,DC=,DC=
    Очевидно, последствия копи-пасты. А в целом статья хорошая, мне помогло. Спасибо!

    ОтветитьУдалить