Домен

Регистрация на сайте
GRATIS форум > Компьютер
Feles
Я полагаю, что достаточно много народу рано или поздно сталкивается с необходимостью переименования домена или контроллера домена. На гратисе я подобной темы не видела, а потому и пишу. Я, собственно говоря не исключение из общего правила biggrin.gif, потому вчера я и озадачилась этой проблемой. Мануал по этому делу, написанный доблестными бойцами Майкрософта, занимает порядка 84-х страниц и, надо сказать, я к прочтению 10-й уже поняла, что проще делать только изредка туда заглядывать. Я вот и решила внести свою лепту и в общем могу написать как я это переименовывала и какие косяки при этом возникли и как я из этих косяков потом выползала. (надо сказать что почти никаких, хотя я потом уже поняла что делала все через задницу, однако все работает biggrin.gif) следовательно, в качестве так сказать *перекрестного опыления* biggrin.gif , могу поделиться опытом, потому что как я заметила, тема в общем народ интересует. Следовательно, общественность! Если тема интересует - пишите, бум тему развивать, а если нет..ну.. и так бывает biggrin.gif
Feles
Господа,какой смысл переносить тему из раздела Windows в раздел Интернет? Тема напрямую связана с Windows и к интернету не имеет никакого отношения. Или в этот раздел перемещаются все тему связанные с сетями? biggrin.gif
Disant
QUOTE
переименования домена или контроллера домена

Никогда о таком не слышал. Какого домена, объясни...
Duke
Feles
Доменная система - основа интернета wink.gif а АД Window это только сервер позволяющий создавать мини инет в локалке ( утрированно конечно smile.gif )
А так тема очень интересная !!! Так что вопрос первый wink.gif Резервная копия АД !!
Feles
Пардон за флуд, но сегодня уже не получится.Время позднее, домой бы вообще как-нить попасть еще..А на выходных не до доменов, долгих лет им жизни..Не до Нета и не до компов biggrin.gif В понедельник обещаюсь начать повествование.
А доменная система пусть основа Нета, но я думаю, что народ, который будет искать такие штуки полезет в раздел Windows или что-то типа *Локальные сети*. Вряд ли полезут сюда искать. smile.gif
Feles
Добралась таки.
Переименование домена.
Вариант номер первый и наиболее простой, для людей у которых MS Exchange нет. Для тех у кого есть, напишу позднее, что там надо добавить.
Итак. В общем для начала можно просто забэкапить все, а еще лучше снять образ системы, чтобы всегда можно было вернутся к начальному. Но на самом деле, если делать все правильно, проблем вообще не будет. В мое второе переименование, глюков вообще не возникло ни одного.
Итак. Что нам нужно.
1. Нам нужен компьютер, который будет введен в домен и на котором будет установлена ОС WinServer 2003, но не контроллер домена.
2. Диск с Винсервером 2003. Причем в идеале - лицензионный, потому как на дисках типа - *Вся Винда в одном флаконе* нужных утилиток нет.
Вот, собственно говоря, и все. Все действия будут проводится на компе с Винсервером, не контроллере домена.
Ну..поехали smile.gif (Гагарин, блин biggrin.gif)

1. На контроллере добавляем новые зоны днс, а старые оставляем. Надо сказать, что когда я переименовывала первый домен, я зоны создать забыла. biggrin.gif В результате ничего страшного не случилось. Ну почти biggrin.gif Но об этом позже. smile.gif

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>)И для КАЖДОГО контроллера состояние будет менятся и менятся сугубо индивидуально smile.gif

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. Если хоть один не готов морально biggrin.gif опять набираем эту команду и так, пока они не сдадутся все. biggrin.gif

13. Теперь следовательно заставляем их выполнять то что мы им говорим
rendom /execute
Следовательно, все контроллеры получают команду *выполнить* и применяют инструкции. После чего они все, применив инструкции, сами перезагружаются.
В файле dclist.xml для всех контроллеров домена состояние должно быть либо *Done* либо *Error*. Если последнее - ну, пинаем его еще разок.

14.Ребутаем управляющую станцию два раза. Когда я второй раз переименовывала домен, у меня управляющая станция уже после первой загрузки опознала новый домен и я вошла уже в домен с новым именем. Первый раз - у меня отобразилось старое имя, я попыталась войти под своим логином и паролем, не пустил. Но когда я решила войти локально на комп, в окошке я уже увидела имя компьютера и имя нового, а не старого домена. Не подцепился сразу. Не бойтесь, подцепится, никуда не денется. После второй перезагрузки, нормальной, а не из розетки выдернуть biggrin.gif, управляющая станция уже точно получит всю инфу о новом имени.

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. Всем машинам в домене надо перезагрузится дважды. Не выдергиванием из розетки, а нормально smile.gif

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 старое имя делать не надо. Пусть останется. Так кстати и просто контроллер домена переименовывается. Если домен не переименовываешь.
Все, в общем-то. Можно со спокойной душой идти пить свое честно заработанное пивко biggrin.gif
А.. еще перед пивком, чтоб совсем с чистой душой его пить,
dcdiag
Любуетесь словами passed на все тесты и вот теперь все. А вот если не passed, тогда уже только смотреть, что и где не так. smile.gif
Duke
Получаем информацию об учетных записях юзеров на компе в сети

CODE
On error Resume Next
Const ForReading = 1, ForWriting = 2, ForAppending = 8
'******************************************
strComputer = "193.125.10.5"
strUser = "Andy_user"
strPassword = "PASSWORD"
strDomain = ""
'******************************************
Err.Clear
'--- Подключаемся ---
Set objSWbemLocator = CreateObject ("WbemScripting.SWbemLocator")
If (Err.Number <> 0) Then
  WScript.Echo "Error (objSWbemLocator)  : " & Err.Number & "   " & Err.Description
  WScript.Quit
End If
Err.Clear
Set objSWbemServices = objSWbemLocator.ConnectServer ( _
  strComputer, _
  "root\cimv2", _
  strUser, _
  strPassword, _
  "MS_409", _
  "ntlmdomain:" & strDomain)
If (Err.Number <> 0) Then
  WScript.Echo "Error (objSWbemServices)  : " & Err.Number & "   " & Err.Description
  WScript.Quit
End If
Err.Clear
Set file_object = CreateObject("Scripting.FileSystemObject")
Set list = file_object.OpenTextFile("./Rezult.log",ForWriting,True)
Set colAcc = objSWbemServices.ExecQuery ("Select * from Win32_UserAccount")
WScript.Echo "Обнаружено " & colAcc.Count & " учетных записей."
For Each ttt in colAcc
   list.Write  ttt.Caption & " "  & vbCrLf
   list.Write  "   " & "Caption : " & ttt.Caption  & vbCrLf
   list.Write  "   " & "Name : " & ttt.Name  & vbCrLf
   list.Write  "   " & "Description : " & ttt.Description  & vbCrLf
   list.Write  "   " & "Domain : " & ttt.Domain  & vbCrLf
   list.Write  "   " & "SID : " & ttt.SID  & vbCrLf
   list.Write  "   " & "SIDType : " & ttt.SIDType  & vbCrLf
   list.Write  "   " & "Disabled : " & ttt.Disabled  & vbCrLf
   list.Write  "   " & "Lockout : " & ttt.Lockout  & vbCrLf
   list.Write  "   " & "PasswordChangeable : " & ttt.PasswordChangeable  & vbCrLf
   list.Write  "   " & "PasswordExpires : " & ttt.PasswordExpires  & vbCrLf
   list.Write  "   " & "PasswordRequired : " & ttt.PasswordRequired  & vbCrLf
   list.Write  " -------------------------------  " &  vbCrLf
Next
list.Close
Dark_Elf
Duke
а это что такое? я не понял... похоже на VB&C++ smile.gif
Duke
Dark_Elf
именно wink.gif
brainman
Feles
БОЛЬШОЕ ЧЕЛОВЕЧЕСКОЕ СПАСИБО за пост по переименованию домена. Очень помогло.
mityann
Спасибо огромное! Все прошло "на ура" smile.gif
Единственный момент остался, может не дочитал чего...
В днс, перед переименованием, создал зону "newdomain"
после завершения переименования остались две прямых зоны
"newdomain" с серверами и "olddomain" с серверами и компьютерами пользователей.
Можно-ли удалить старую зону? Пользователи начнут регистрироваться в новой зоне, или я получу проблемы и большие?) smile.gif