Blog of Khlebalin Dmitriy

(Дорогу осилит идущий…)

Мигрируем из одного домена в другой.


К сожалению, на Майкрософтовских курсах, где я когда-то учился, вопрос миграции рассматривается достаточно «скомкано», вероятно, это связано с тем, что данный процесс происходит крайне редко, вероятно, просто не хватило времени на эту тему. Лишь однажды, уже слушая Exchange, Зинченко Максим, рассказывал нам, как мигрировать из домена с 2000 ной инфраструктурой в домен с 2003 инфраструктурой, но это так же не сильно отложилось в моей памяти. Посему хотелось бы об этом по подробней:

 Многих системных администраторов отпугивает перенос объектов AD между лесами/доменами из-за громоздкости существующих руководств по данному процессу. В существующих публикациях раскрывается 100% возможностей средств Active Directory Migration Tool 3.1 (этот инструмент рекомендует Майкрософт, но есть еще и альтернативные инструменты, например Pontdiev Migration, но к сожалению они не бесплатны), немалая часть которых редко используется в реальных ситуациях, что и делает процесс подготовки к миграции долгим для многих администраторов, сталкивающихся с этим впервые (к таковым кстати отношусь и я). Классический сценарий требует избыточности в плане подготовки исходного и конечного доменов.

В представленном сценарии описывается процесс межлесовой миграции с минимальными вмешательствами в инфраструктуру исходного домена (например, без доверительных отношений), что несет в себе множество преимуществ. Перед выполнением данного сценария все же не стоит пренебрегать резервированием исходного и целевого доменов и созданием планов миграции и отката в исходную точку. Данная схема работает при минимальных логических изменениях в процессе для доменов любого уровня и на любых ОС, начиная с Windows Server 2000, в том числе и для Small Business Server’s и Essential Business Server’s.

В описываемом сценарии представлено два корневых домена под управлением ОС Windows Server 2008 SP2. Исходный домен SOURCE.LOCAL (FSMO-контроллером которого является сервер dc1.source.local, IP 10.8.2.251) содержит 158 пользователей и 8 групп безопасности, в которых они распределены. Конечный домен TARGET.LOCAL (dc2.target.local, IP 10.8.2.252). Цель – перенести все учетные записи пользователей (с сохранением паролей), группы безопасности и рабочие станции в конечный домен.

  1. Подготовка исходного домена заключается в настройке DNS-пересылок и отключении DHCP-сервера. Все существующие пересылки необходимо удалить и создать обычную пересылку, указывающую на контроллер целевого домена.

Причем нам необходимо, чтобы IP-адрес контроллера целевого домена ссылался на его имя в FQDN-формате, для чего нужно добавить соответствующую PTR-запись в обратную зону.

Если же исходный домен-контроллер находится под управлением ОС Windows Server 2003, то можно ограничиться созданием пересылки на FQDN конечного домена без добавления в обратную зону PTR-записи контроллера конечного домена.

  • Подготовка целевого домена состоит в создании conditional forwarder’а, задающего соответствие имени исходного домена SOURCE.LOCAL его контроллеру dc1.source.local и включении DHCP-сервера в конечном домене. Все существующие пересылки также необходимо удалить. Если есть возможность использовать DHCP-сервер на активном сетевом оборудовании, то лучше использовать его.
  • Наличие PTR-записи исходного домен-контроллера в обратной зоне также является необходимым условием.

    Если целевой домен находится под управлением ОС Windows Server 2003, то в DNS достаточно ограничиться пересылкой на исходный домен по IP-адресу контроллера домена. В обратной зоне никаких изменений вносить не требуется при этом.

  • Пароли для администраторов доменов должны отличаться. Также в обоих доменах должны быть одинаковые групповые политики в отношении сложности паролей. На время миграции настоятельно рекомендуется отключить встроенные брэндмауэры на клиентских ПК. Соответственно, в конечном домене также должна быть активной политика, отключающая службы Windows Firewall и Internet Connection Sharing (ICS). Это может сильно повлиять на работу агента миграции клиентских ПК, который будет закачиваться на них и совершать необходимые операции.
  • Перед началом процесса миграции все клиентские ПК должны быть включены и разлогинены. Никто не должен работать.
  • Если в исходном домене находятся ПК под управлением ОС Windows XP, Windows 2000 или Windows Server 2003, а конечный домен находится под управлением контроллеров с ОС Windows Server 2008, то необходимо на всех контроллерах в целевом домене создать/изменить ключ в реестре:
  • Registry path: HKLM\System\CurrentControlSet\Services\Netlogon\Parameters
    Registry value: AllowNT4Crypto
    Type: REG_DWORD
    Data: 1

  • После создания пересылок необходимо установить средство ADMT на целевой контроллер в зависимости от версии ОС. Для Windows Server 2008 подходит только версия 3.1 (Active Directory Migration Tool version 3.1). Для всех остальных – любые вплоть до третьей (здесь мы намеренно не рассматривает вариант, когда целевой контроллер домена находится под управлением NT4). После установки средства ADMT на конечный сервер, необходимо узнать куда оно проинсталлировалось (вариантов несколько: от X:\Program Files (x86) до X:\WINDOWS). Необходим точный путь до файла оснастки migrator.msc.
  • Создание командного файла для запуска оснастки средства ADMT migrator.bat (поскольку доверие между доменами, строго говоря, не является необходимым условием). migrator.bat должен содержать в себе следующую команду:
  • Runas /Netonly /user:ИМЯ_ИСХОДНОГО_ДОМЕНА\ЛОГИН_АДМИНИСТРАТОРА «Mmc \»%windir%\ADMT\migrator.msc\»»

    В нашем случае команда будет выглядеть так:

    Runas /Netonly /user:SOURCE\Administrator «Mmc \»%windir%\ADMT\migrator.msc\»»

    Запускать командный файл придется каждый раз для запуска средства ADMT. 

  • В данном сценарии предполагается миграция существующих паролей. Для того, чтобы это осуществить необходимо проделать следующие шаги.
    1. Генерация ключа для исходного домена на целевом контроллере командой:
  • Admt key /option:create /sourcedomain:ИМЯ_ИСХОДНОГО_ДОМЕНА /keyfile:ПОЛНЫЙ_ПУТЬ_К_КЛЮЧЕВОМУ_ФАЙЛУ

    /keypassword:ПАРОЛЬ_УДОВЛЕТВОРЯЮЩИЙ_ПОЛИТИКЕ ПАРОЛЕЙ_В_ОБОИХ_ДОМЕНАХ

    В нашем случае команда генерации ключа будет выглядеть так:

    Admt key /option:create /sourcedomain:SOURCE.LOCAL /keyfile:C:\PWD.pes /keypassword:{microsoftkey777}
    Импортирование ключа для исходного домена на целевом контроллере командой:

    admt key /option:import /sourcedomain: ИМЯ_ИСХОДНОГО_ДОМЕНА
    /keyfile: ПОЛНЫЙ_ПУТЬ_К_КЛЮЧЕВОМУ_ФАЙЛУ
    / keypassword:ЗАДАННЫЙ_РАНЕЕ_ПАРОЛЬ

    В нашем случае импортирование созданного ранее ключа будет выглядеть так:

    admt key /option:import /sourcedomain:source.local /keyfile:C:\PWD.pes /keypassword:{microsoftkey777}

  • Размещение полученного ключа локально на исходном контроллере.
  • Установка средства Password Export Server version 3.1 (ADMT Password Migration DLL) на исходный контроллер. При установке будет запрошен ключевой файл, на который надо указать и ввести указанный выше пароль. После установки следует перегрузить сервер.
  • Установка разрешений на запуск службы Password Export Server Service. Для этого необходимо в обоих доменах завести пользователей с одинаковыми логинами и паролями. В нашем случае это пользователь PES с правами обычного доменного пользователя. Служба должна запускаться от имени созданного пользователя. После установки разрешений службу можно запустить. Начиная с этого момента, возможна миграция существующих паролей в целевой домен.
    Следует отметить, что метод миграции паролей с помощью средства Password Export Server работает только с ОС Windows Server 2003 и 2008. Если исходный домен находится под управлением более ранней ОС, то следует обратиться к соответствующему разделу мануала по ранним версиям ADMT.
  • Начало миграции. Для запуска средства ADMT используем созданный ранее командный файл. При запуске будет запрошен пароль администратора исходного домена.
    1. Для миграция учетных записей пользователей необходимо запустить User Account Migration Wizard из меню Action. Далее необходимо ввести информацию об исходном и целевом доменах, указав при этом именно те контроллеры, которые были использованы при создании DNS-пересылок. В нашем случае это dc1.source.local и dc2.target.local. После выборки необходимых пользователей из исходного домена необходимо указать контейнер в целевом домене для размещения мигрированных объектов. Далее отмечаем опции Migrate Passwords, Do not update passwords for existing users и вводим контроллер исходного домена, на котором запущена служба PESSVC, в поле Password migration source dc. В нашем случае это dc1.source.local. В меню Account Transition Options отмечаем опции Target same as source и Migrate user SIDs to target domain. Далее будет предложено включить аудит учетных записей в исходном домене. Следует согласиться со всеми предложениями, после чего перезагрузка исходного контроллера будет необратима. После загрузки исходного контроллера необходимо запустить на нём службу PESSVC и продолжить миграцию учетных записей пользователей на конечном сервере. После чего необходимо ввести логин и пароль администратора исходного домена. В меню User Options отметить опции Translate roaming profiles, Update User Rights, Fix users’s group membership. В меню Conflict Management отметить опцию Do not migrate source objects if a conflict is detected in the target domain. С конфликтующими объектами лучше разобраться вручную. Меню с выбором исключений можно пропустить. Следует отметить, что в данном сценарии вместе с учетными записями пользователей также мигрируются перемещаемые профили, что делает данный процесс незаметным для конечного пользователя. Если в домене не используются перемещаемые профили, то рекомендуется заведомо их сделать таковыми.  
    2. Для миграции групп безопасности необходимо запустить Group Account Migration Wizard из меню Action. Далее необходимо ввести информацию об исходном и целевом доменах, указав при этом именно те контроллеры, которые были использованы при создании DNS-пересылок. В нашем случае это dc1.source.local и dc2.target.local. После выборки необходимых групп безопасности из исходного домена необходимо указать контейнер в целевом домене для размещения мигрированных объектов. В меню Group Options необходимо отметить опции Update user rights, Fix membership of group, Migrate group SIDs to target domain. В меню Conflict Management отметить опцию Do not migrate source objects if a conflict is detected in the target domain. Меню с выбором исключений можно пропустить. Никогда не следует выполнять миграцию таких глобальных групп безопасности как «Издатели сертификатов», «Администраторы DHCP», «Пользователи DHCP», DnsAdmins, DnsUpdateProxy, «Администраторы домена», «Компьютеры домена», «Контроллеры домена», «Гости домена», «Пользо¬ватели домена», «Администраторы предприятия», «Владельцы-создатели групповой политики», «Серверы RAS и IAS», «Администраторы схемы» и «Пользователи WINS» и их аналоги.
    3. Миграция рабочих станций осуществляется через Computer Migration Wizard меню Action. Дойдя до меню Translate Objects можно отметить те опции, которые нам необходимы, после чего в Security Translation Options выбрать опцию Add (Add equivalent security references for target objects and have source reference intact). В следующем окне необходимо выставить временную задержку, по истечении которой клиентский ПК будет перезагружен (при условии, что агент мигрирования завершится успешно). Меню с исключениями можно пропустить. В меню Conflict Management отметить опцию Do not migrate source objects if a conflict is detected in the target domain. После того, как работа мастера завершится, будет запущено диалоговое окно управления агентами миграции ПК с перечнем всех выбранных ранее ПК, подлежащих переносу в новый домен. В разделе Agent Actions следует отметить опцию Run pre-check and agent operation и нажать Start. Со временем агент начнет перегружать клиентские ПК и выполнять процедуру POST-CHECK, которая может завершаться с ошибкой, если перед миграцией не были корректно настроены службы DHCP в обоих доменах. Чаще всего это свидетельствует о том, что клиентский ПК не получил корректных настроек от DHCP-сервера в конечном домене. По статистике примерно на 100 рабочих станций приходится 10-15, которые не обрабатываются агентом миграции. Такие ПК придется переносить вручную, если сходу не попытаться устранить проблему, которая, скорее всего, кроется в службах Workstation, Netlogon и RPC.  
  • По завершении миграции необходимо вернуть обратно удаленные ранее пересылки на обоих контроллерах, удалив при этом служебные (созданные для целей миграции).
  • Но это еще не все.  Необходимо еще мигрировать почтовые ящики. Например если в старом домене exch2003, а в новом exch2007. Эту информацию я найти в инете так и не смог. Потому и обратился с вопросом к одному из ГУРУ Exchange — Зинченко Максиму (он кстати и читал у меня все курсы по Exchange). И вот ответ:

    Все также актуален вопрос перемещения почтовых ящиков между лесами и почтовыми организациями. Администраторы стараются своими силами, без привлечения консалтерских организаций провести миграцию, причем желательно с минимумом ошибок и простоев. Вам в помощь:

    Здесь будет описана процедура переноса ящиков. Т.е. подразумевается, что пользовательские учетки вы уже перевели в новый лес. Если нет – эта процедура первоочередной важности, и должна быть успешно завершена до того как вы будете переносить сами почтовые ящики. Тоже самое касается переноса контактов и групп рассылки. Делается это с помощью Active Directory MIgration Tool 3.0 (ADMT v3.1), а руководство по применению ADMT – здесь

    Перенос ящиков между доменами одного леса, или в пределах одного домена является очень уж тривиальной задачей. Однако, если понадобится, рассмотрим и этот вопрос. Перевод же компании между лесами AD, и по-сути, между организациями Exchange – представляется по первому времени – сложной задачей. Однако это не так. Сценарий переноса ящиков справедлив для всех случаев:
    Exchange 2000 Server }
    Exchange Server 2003 } => Exchange Server 2007
    Exchange Server 2007 }

    0. Как известно, перенести почтовые ящики из одного леса в другой при помощи графического интерфейса Exchange невозможно, и мы будем использовать EMS – Exchange Management Shell. PS:>_

    Итак, учетки перемещены в новый лес Active Directory, переносим почтовые ящики:

    1. Минимальные права для выполния переноса ящиков:
    В исходной организации (лесу AD):
    Администратор получателей Exchange, администратор сервера Exchange (Exchange Full Administrator в Exchange 2000/2003 и Exchange Recipient Administrator + Exchange Server Administrator в Exchange 2007) и членство в локальной группе администраторов, на сервере Exchange.
    Эту учетку мы укажем параметром -SourceForestCredential

    В целевой организации (лесу AD): такие же –
    Exchange Recipient Administrator, Exchange Server Administrator в Exchange 2007 и членство в локальной группе администраторов, на сервере Exchange.
    Эту учетку мы укажем параметром -TargetForestCredential

    1.1 Для всех топологий с несколькими лесами, содержащих Exchange 2007, необходимо, чтобы в каждом лесу сервера GC (Global Catalog) работали под управлением Windows Server 2003 SP1, а лучше SP2. Тоже самое касается исходных лесов AD, хотя бы один GC должен быть под управлением Windows Server 2003 SP1 или выше, иначе командлет Move-Mailbox не сможет перенести оттуда ящики.

    1.2 Содержимое Deleted Items в почтовых ящиках обычно не перемещается, и по этому поводу существует инструкция: «Настройка сохранения удаленных почтовых ящиков и элементов»

    2. На целевом сервере Exchange 2007, где будет выполняться командлет Move-Mailbox, нужно провести объявить переменную $SourceCredential, и присвоить ей текущую учетную запись админа, выполняющего миграцию.
    $SourceCredential = Get-Credential
    Будут запрошены учетные данные. Нужно указать учетную запись администратора исходной организации Exchange.

    3. Там же на целевом сервере Exchange 2007, объявляем еще одну переменную – админа целевой организации, выполняющего миграцию.
    $TargetCredential = Get-Credential
    И вводим учетную запись администратора целевой организации.

    4. Все там же на целевом сервере:
    Move-Mailbox -TargetDatabase "Target ServerFirst Storage GroupMailbox
    Database" -Identity SampleUser -GlobalCatalog GC1.targetdomain.ru
    -SourceForestGlobalCatalog GC2.sourcedomain.ru -NTAccountOU
    "OU=MigrationOU,DC=targetdomain,DC=ru" -SourceForestCredential
    $SourceCredential -TargetForestCredential $TargetCredential

    Где SourceDomain.ru – исходный домен, TargetDomain.ru – целевой домен.
    Команды отрабатываются на конечном сервере.
    Не забывайте, что любые имена серверов, учетных записей, итп, содержащие пробел – должны писаться в кавычках.

    Параметры GlobalCatalog и SourceForestGlobalCatalog используются для определения местоположения почтового ящика в исходном лесу и в лесу назначения. Если не указан глобальный каталог исходного леса или конечного леса, лес локального компьютера, на котором запущена команда Move-Mailbox, будет использован для определения используемого сервера глобального каталога. Чтобы переместить почтовый ящик между разными лесами, необходимо указать хотя бы один из этих двух параметров.

    Параметр NTAccountOU указывает подразделение организации в конечном лесу, в котором будет создана учетная запись пользователя для почтового ящика, если она не существует, или в месте, где находится учетная запись пользователя (если она существует).

    4.1 Если следует сохранить политики получателя в почтовом ящике после его перемещения, используйте параметр:
    ... -IgnorePolicyMatch:$true

    4.2 Если вы хотите отфильтровать перемещаемый контент в ящиках, можно использовать фильтры, например:
    ... -AttachmentFilenames *.doc -ExcludeFolders InboxNoTransfer,InboxOld
    -RecipientKeywords SampleUser@SourceDomain.ru

    Следующие фильтры указывают типы данных для перемещения в ящиках:
    -AllContentKeywords — слова встречающиеся в теме, теле и/или аттачментах писем
    -ContentKeywords – слова встречающиеся теле и/или аттачментах писем
    -SubjectKeywords – слова встречающиеся теме писем
    используйте либо -AllContentKeywords, либо «-ContentKeywords» + «-SubjectKeywords»
    -AttachmentFilenames – типы файлов в аттачменте (*.doc,*.docx,*.xlsx)
    -StartDate – письма полученные от начала указанной даты (мм/дд/гггг – зависит от региональных настроек сервера)
    -EndDate – письма полученные до конца указанной даты (мм/дд/гггг – зависит от региональных настроек сервера)
    -ExcludeFolders – исключая следующие папки в ящике, начиная от корня «», через запятую и без пробелов.
    -IncludeFolders – включая следующие папки в ящике, начиная от корня «», через запятую и без пробелов.
    -RecipientKeywords – для следующих получателей, по имени или smtp адресу.
    -SenderKeywords – от следующих отправителей, по имени или smtp адресу.

    4.3 для сохранения квот на размеры почтовых ящиков после переноса:
    ... -PreserveMailboxSizeLimit $true

    4.4
    -ValidateOnly – проверить права на выполнение миграции ящиков.

    4.5
    -WhatIf – проверить правильность составления всей команды.

    По умолчанию команда Move-Mailbox не удаляет ни исходный почтовый ящик, ни исходную учетную запись пользователя. Если вы перемещаете почтовый ящик пользователя в новый лес, причем учетная запись уже перемещена при помощи ADMT, и необходимо удалить и исходный почтовый ящик, и исходную учетную запись после перемещения почтового ящика
    4.6 Операции с исходным ящиком:
    -SourceMailboxCleanupOptions DeleteSourceNTAccount
    DeleteSourceMailbox – удалить исходный ящик,
    CreateSourceContact – удалить учетку и создать вместо нее контакт. Используется для перенаправления почты из старого домена в новый, в ящики на сервере Exchange 2007.
    MailEnableSourceAccount – переделать mailbox-enabled user в mail-enabled user с хостингом почтового ящика на Exchange 2007 в целевом домене, разница с предыдущим ключом – сохраняются права пользователя в исходном домене.

    5. Остается только проверить успешность переноса ящика на целевой сервер, любым удобным для вас способом – OWA, Outlook, ActiveSync итд.

    Удачной миграции!

    Реклама

    15.12.2009 - Posted by | ms windows 2003

    Sorry, the comment form is closed at this time.

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