Добралась таки.
Переименование домена.
Вариант номер первый и наиболее простой, для людей у которых MS Exchange нет. Для тех у кого есть, напишу позднее, что там надо добавить.
Итак. В общем для начала можно просто забэкапить все, а еще лучше снять образ системы, чтобы всегда можно было вернутся к начальному. Но на самом деле, если делать все правильно, проблем вообще не будет. В мое второе переименование, глюков вообще не возникло ни одного.
Итак. Что нам нужно.
1. Нам нужен компьютер, который будет введен в домен и на котором будет установлена ОС WinServer 2003, но не контроллер домена.
2. Диск с Винсервером 2003. Причем в идеале - лицензионный, потому как на дисках типа - *Вся Винда в одном флаконе* нужных утилиток нет.
Вот, собственно говоря, и все. Все действия будут проводится на компе с Винсервером, не контроллере домена.
Ну..поехали
(Гагарин, блин
)
1. На контроллере добавляем новые зоны днс, а старые оставляем. Надо сказать, что когда я переименовывала первый домен, я зоны создать забыла.
В результате ничего страшного не случилось. Ну почти
Но об этом позже.
2. Поднимаем уровань функциональности, сперва домена, а потом леса до 2003го.В Active Directory Domains and Trusts правой кнопкой мыши и *Изменить режим работы домена* потом *леса* (Raise functional level, если Винда английская).
3. После этого, переходим на управляющую станцию и контроллер домена больше не трогаем.
Создаем на диске папку. К примеру *RenameDomain*. Основные рабочие папки будут: эта, system32 и Program Files\Support Tools.
4. В папку C:\RenameDomain копируем все из папки на диске с винсервером \valueadd\msft\mgmt\domren\ и смотрим чтобы в папку скопировались файлы rendom.exe и gpfixup.exe
5. Из папки Support\Tools с диска с Винсервером надо инсталлировать Support Tools. Просто запускаем suptools.msi (правой кнопкой мыши - *установить*). Бойцы Майкрософта просят проследить чтобы *утилиты repadmin.exe, dfsutil.exe были проинсталлированны на управляющую станцию.*
Да, кстати. Еще. Майкрософтовские бойцы утверждают, что для всего этого художества, вы должны быть Enterprize админом в домене и админом на рабочей станции.
6. Запускаем командную строку. (Я не буду далее прямо подробно и пошагово расписывать очевидные вещи, потому как вполне логично, что если человек не в курсе как общаться с командной строкой, он вряд ли полезет домен переименовывать.)Переползаем в директорию RenameDomain. Набираем
rendom /list.
С помощью этой команды управляющая станция коннектится с контроллером домена, который выполняет роль domain naming master. Если конроллер недоступен - выкинет с ошибкой.
Этой командой в нашей директории создасться файлик domainlist.xml. В нем содержится полное описание структуры леса в виде списков разделов каталогов всех доменов леса и разделов приложений. Дальше, мы его копируем
copy domainlist.xml domainlist-save.xml.
Пример привожу прямо из мануала майкрософтовцев. Вот как этот файлик выглядит для леса с двумя доменами cohovineyard.com (NetBIOS имя COHOVINEYARD) и sales.cohovineyard.com (NetBIOS имя SALES)
<?xml version = “1.0”?>
<Forest>
<Domain>
<!-- PartitionType:Application -->
<Guid>59add6bb-d0e8-499e-82b9-8aaca5d3e18b</Guid>
<DNSname>DomainDnsZones.sales.cohovineyard.com</DNSname>
<NetBiosName></NetBiosName>
<DcName></DcName>
</Domain>
<Domain>
<Guid>89cf8ae3-f4a3-453b-ac5c-cb05a76bfa40</Guid>
<DNSname>sales.cohovineyard.com</DNSname>
<NetBiosName>SALES</NetBiosName>
<DcName></DcName>
</Domain>
<Domain>
<!-- PartitionType:Application -->
<Guid>f018941b-c899-4601-bfa7-5c017e9d31e7</Guid>
<DNSname>ForestDnsZones.cohovineyard.com</DNSname>
<NetBiosName></NetBiosName>
<DcName></DcName>
</Domain>
<Domain>
<!-- PartitionType:Application -->
<Guid>f018941b-c899-4601-bfa7-5c017e9d31f3</Guid>
<DNSname>DomainDnsZones.cohovineyard.com</DNSname>
<NetBiosName></NetBiosName>
<DcName></DcName>
</Domain>
<Domain>
<! — - ForestRoot -->
<Guid>89cf6b34-d753-32a8-da6b-6a8e04bc48a4</Guid>
<DNSname> cohovineyard.com</DNSname>
<NetBiosName>COHOVINEYARD</NetBiosName>
<DcName></DcName>
</Domain>
</Forest>
7. Открываем его с помощью обычного текстового редактора и заменяем все DNS имена и NetBIOS имена - новыми.
Т.е. после замены будет так:
<?xml version = “1.0”?>
<Forest>
<Domain>
<!-- PartitionType:Application -->
<Guid>59add6bb-d0e8-499e-82b9-8aaca5d3e18b</Guid>
<DNSname>DomainDnsZones.sales.cohowinery.com</DNSname>
<NetBiosName></NetBiosName>
<DcName></DcName>
</Domain>
<Domain>
<Guid>89cf8ae3-f4a3-453b-ac5c-cb05a76bfa40</Guid>
<DNSname>sales.cohowinery.com</DNSname>
<NetBiosName>SALES</NetBiosName>
<DcName></DcName>
</Domain>
<Domain>
<!-- PartitionType:Application -->
<Guid>f018941b-c899-4601-bfa7-5c017e9d31e7</Guid>
<DNSname>ForestDnsZones.cohowinery.com</DNSname>
<NetBiosName></NetBiosName>
<DcName></DcName>
</Domain>
<Domain>
<!-- PartitionType:Application -->
<Guid>f018941b-c899-4601-bfa7-5c017e9d31f3</Guid>
<DNSname>DomainDnsZones.cohowinery.com</DNSname>
<NetBiosName></NetBiosName>
<DcName></DcName>
</Domain>
<Domain>
<! — - ForestRoot -->
<Guid>89cf6b34-d753-32a8-da6b-6a8e04bc48a4</Guid>
<DNSname> cohowinery.com</DNSname>
<NetBiosName>COHOWINERY</NetBiosName>
<DcName></DcName>
</Domain>
</Forest>
8.Смотрим, что у нас получилось, то-есть новую структуру.Набираем
rendom /showforest
9.Теперь если мы не в нашей любимой директории - переползаем туда и набираем
rendom /upload
Что здесь фактически происходит: происходитгенерирование инструкций переименования домена, которые необходимы для создания новой структуры леса.Этой командой структура леса - которая отображена в скорректированном нами файле переводится в инструкции обновления каталога, которые удаленно выполнятся на каждом контроллере леса.Короче, инструкции сгенерируются и загрузятся в Active Directory. Еще, в результате сгенерируется файл состояния - dclist.xml. Там будет отображаться состояние каждого контроллера домена.
Опять же для нашего примера (вернее, для майкрософтовского, я просто примеры у них сперла,хотя можно и мои файлы привести в пример) Итак, для случая описанного выше, файл dclist.xml выглядит так, типа по два контроллера на два домена:
<?xml version = “1.0”?>
<DcList>
<Hash>zzzzzzzz</Hash>
<Signature>zzzzzzzz</Signature>
<DC>
<Name>DC1.cohovineyard.com</Name>
<State>Initial</State>
<LastError>0</LastError>
<Password />
<LastErrorMsg />
<FatalErrorMsg />
<Retry></Retry>
</DC>
<DC>
<Name>DC2.cohovineyard.com</Name>
<State>Initial</State>
<LastError>0</LastError>
<Password />
<LastErrorMsg />
<FatalErrorMsg />
<Retry></Retry>
</DC>
<DC>
<Name>DC3.sales.cohovineyard.com</Name>
<State>Initial</State>
<LastError>0</LastError>
<Password />
<LastErrorMsg />
<FatalErrorMsg />
<Retry></Retry>
</DC>
<DC>
<Name>DC4.sales.cohovineyard.com</Name>
<State>Initial</State>
<LastError>0</LastError>
<Password />
<LastErrorMsg />
<FatalErrorMsg />
<Retry></Retry>
</DC>
</DcList>
Этот файл показывает состояние контроллеров. (Тэги <State></State>)И для КАЖДОГО контроллера состояние будет менятся и менятся сугубо индивидуально
9. Итак, инструкции по переименованию у нас загрузились на domain naming master, теперь надо чтобы их получили все остальные контроллеры домена.
Ищем, где у вас лежат файлики repadmin.exe и dsquery.exe (первая кажись, д.б. в Program Files\Support Tools, а вторая в system32, но лучше перепроверить)
10. С помощью утилиты dsquery.exe узнаем имя domain naming mastera.
Dsquery server -hasfsmo name
Получили. Чудесно.Теперь:
11. repadmin /syncall /d /e /P /q Domainnamingmaster
Domainnamingmaster - DNS-имя как раз domain naming mastera.
Все. Если ошибок не выползло - все замечательно.
12.Теперь приводим все контроллеры домена в состоянии боевой готовности. То-есть фактически, здесь проверяется, насколько контроллеры готовы и в состоянии принять инструкции по переименованию.
Переползаем в нашу любимую директорию и
rendom /prepare
Потом, когда завершится, открываем файлик состояний dclist.xml и смотрим чтобы ВСЕ были в состоянии Prepared. Если хоть один не готов морально
опять набираем эту команду и так, пока они не сдадутся все.
13. Теперь следовательно заставляем их выполнять то что мы им говорим
rendom /execute
Следовательно, все контроллеры получают команду *выполнить* и применяют инструкции. После чего они все, применив инструкции, сами перезагружаются.
В файле dclist.xml для всех контроллеров домена состояние должно быть либо *Done* либо *Error*. Если последнее - ну, пинаем его еще разок.
14.Ребутаем управляющую станцию два раза. Когда я второй раз переименовывала домен, у меня управляющая станция уже после первой загрузки опознала новый домен и я вошла уже в домен с новым именем. Первый раз - у меня отобразилось старое имя, я попыталась войти под своим логином и паролем, не пустил. Но когда я решила войти локально на комп, в окошке я уже увидела имя компьютера и имя нового, а не старого домена. Не подцепился сразу. Не бойтесь, подцепится, никуда не денется. После второй перезагрузки, нормальной, а не из розетки выдернуть
, управляющая станция уже точно получит всю инфу о новом имени.
15. Переползаем в нашу любимую директорию и:
rendom /end
В процессе этой команды, мы коннектимся к domain naming masterу, и там убираются некоторые штуки, собственно говоря с помощью которых master и обрабатывал наши инструкции.
16. Разбираемся с DFS, если собстна, распределенная файловая система у вас конечно поднята.
Ищем, где у нас там dfsutil.exe и переползаем туда. Дальше:
dfsutil /RenameFtRoot /Root:DfsRootPath /OldDpmain:OldName /NewDomain:NewName /Verbose
Здесь DfsRootPath к примеру, если опять же брать майкрософтовский пример \\cohovineyard.com\public. Ну и старое и новое имя домена OldName и NewName.
17. Теперь с групповыми политиками. Чтобы в новом лесу все нормально функционировало, надо объекты и связи групповой политики тоже исправить.Переползаем в C:\RenameDomain и там набираем:
gpfixup /olddns:OldDomainDnsName /newdns:NewDomainDnsName /oldnb:OldDomainNetBIOSName /newnb:NewdDomainNetBIOSName /dc:DcDnsName 2>&1 >gpfixup.log
Здесь
OldDomainDnsName - старое DNS имя домена
NewDomainDnsName - новое DNS имя домена
OldDomainNetBIOSName - старое NetBIOS имя домена
NewdDomainNetBIOSName - новое NetBIOS имя домена
DcDnsName - имя контроллера домена
Чтобы изменения схватились другими контроллерами надо:
repadmin /syncall /d /e /P /q DcDnsName NewDomainDN
DcDnsName - DNS имя контроллера домена.
NewDomainDN – новое DNS именя переименовываемого домена.
И так для каждого переименовываемого домена.Опять же Майкрософтовский пример
gpfixup /olddns:cohovineyard.com /newdns:cohowinery.com /oldnb:cohovineyard /newnb:cohowinery /dc:dc1.cohovineyard.com 2>&1 >gpfixup1.log
repadmin /syncall /d /e /P /q dc1.cohovineyard.com dc=cohowinery,dc=com
gpfixup /olddns:sales.cohovineyard.com /newdns:sales.cohowinery.com /dc:dc3.sales.cohovineyard.com 2>&1 >gpfixup2.log
repadmin /syncall /d /e /P /q dc3.sales.cohovineyard.com
dc=sales,dc=cohowinery,dc=com
18. Всем машинам в домене надо перезагрузится дважды. Не выдергиванием из розетки, а нормально
19. Следующее rendom /clean. Это все чистит, поэтому прежде чем вы это наберете, надо всех обязательно перезагрузить иначе, что не получит инфу о новом имени домене, после этой команды уже не получит. Я не ребутнула одну рабочую станцию, вернее для эксперимента, ребутнула потом.Она новое имя - то увидела, но ругалась что домен недоступен, так что пришлось ее перевводить.
Вот, собственно говоря и все. Было бы. Если б не один нюанс. Конроллер домена не переименовывается. То есть, фактически, будет написано что он в домене newdomain.local, а имя у него будет - server.olddomain.local. Это нехорошо. Поэтому делаем так:
netdom computername server.olddomain.local /add:server.newdomain.local
netdom computername server.olddomain.local /makeprimary:server.newdomain.local
После этого перегружаем контроллер. Remove старое имя делать не надо. Пусть останется. Так кстати и просто контроллер домена переименовывается. Если домен не переименовываешь.
Все, в общем-то. Можно со спокойной душой идти пить свое честно заработанное пивко
А.. еще перед пивком, чтоб совсем с чистой душой его пить,
dcdiag
Любуетесь словами passed на все тесты и вот теперь все. А вот если не passed, тогда уже только смотреть, что и где не так.