Миграция на Exchange 2010: продолжение

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

Get-ClientAccessServer servername -AutoDiscoverServiceInternalUri
https://hq-hub.domain.com/Autodiscover/Autodiscover.xml

Права доступа для администраторов региональных офисов

Модель назначения прав доступа в Exchange 2010 по сравнению с Exchange 2007 претерпела сильные изменения. Подробнее с ней можно ознакомиться здесь. Попробуем по аналогии с Exchange 2007 дать полный доступ региональным администраторам к своим почтовым серверам, а также дать им полный доступ к своим региональным почтовым объектам и общим папкам. Для начала создадим области действия наших региональных администраторов. Для почтовых объектов:

New-ManagementScope "Region1 Recipients Scope" -RecipientRoot region1.local
-RecipientRestrictionFilter '(objectclass -like "*")'

И для серверов:

New-ManagementScope "Region1 Servers Scope" -ServerRestrictionFilter {ServerSite
-eq "Region1-Site-Name"}

Далее копируем роли из существующей группы ролей “Server Management” в нашу новую группу ролей, область действия которой будет ограничена только региональными серверами и сразу добавим в неё регионального админа (или группу админов):

$RoleGroup = Get-RoleGroup "Server Management"
New-RoleGroup "Region1 Server Management" -Roles $RoleGroup.Roles
-CustomConfigWriteScope "Region1 Servers Scope" -ManagedBy "region1 admin"
-Members "region1 admin"

По аналогии копируем роли из существующей группы ролей “Recipient Management” в нашу новую группу ролей, область действия которой будет ограничена только региональными почтовыми объектами и сразу добавим в неё регионального админа (или группу админов):

$RoleGroup = Get-RoleGroup "Recipient Management"
New-RoleGroup "Region1 Recipient Management" -Roles $RoleGroup.Roles
-CustomRecipientWriteScope "Region1 Recipients Scope" -ManagedBy "region1 admin"
-Members "region1 admin"

То же самое для общих папок – область действия – региональные сервера:

$RoleGroup = Get-RoleGroup "Public Folder Management"
New-RoleGroup "Region1 Public Folder Management" -Roles $RoleGroup.Roles
-CustomConfigWriteScope "Region1 Servers Scope" -ManagedBy "region1 admin"
-Members "region1 admin"

Перенос общих папок

Как и при миграции с Exchange 2003 на Exchange 2007 общие папки должны сначала отреплицироваться на новые сервера. Делается это внесением в свойства общей папки реплик на новые сервера почтовых ящиков, на которых будут находится базы общих папок. Если папок много, то ручное внесение реплик становится трудоёмкой задачей. Для упрощения процесса существует скрипт AddReplicaToPFRecursive.ps1. Он добавляет реплики в свойства указанной общей папки и во все дочерние папки. Запускается следующим образом:

AddReplicaToPFRecursive.ps1 -Server 2007MBX -TopPublicFolder ""
-ServerToAdd 2010MBX

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

AddReplicaToPFRecursive.ps1 -Server 2007MBX -TopPublicFolder "NON_IPM_SUBTREE"
-ServerToAdd 2010MBX

Следует помнить, что если размер общих папок превышает 20-30 Гб, то первую операцию выполнять необходимо крайне осторожно, иначе существует большая вероятность уронить транспортные сервера, которые просто не справятся с таким потоком писем и отключат транспортный сервис, который после этого придётся восстанавливать.

Перенос почтовых ящиков пользователей

По завершении репликации общих папок можно приступать к переносу почтовых ящиков пользователей. Для этого лучше использовать Exchange Management Console (узел Recipient Configuration → Mailbox → New Local Move Request) или командлет New-MoveRequest в Exchange Management Shell. Процесс запускается с серверов Exchange 2010.

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

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

11 thoughts on “Миграция на Exchange 2010: продолжение

  1. Доброго времени суток.
    Есть два сервера 2007 на котором всё было. И новый 2010 на котором всё должно быть.
    Первая проблема – при переносе общей папки командой MoveAllReplicas.ps1 -Server Server-old -NewServer Server-new останавливается служба транспортный сервер на 2007. Объём папки – очень большой около 22гб.

    Скопировалось 7 тысяч писем. Для загрузки службы приходиться перезагружать сервак. Ребут службы не помогает.

    Как перенести общую папку без гемороя =)?

    Как сделать так чтобы не падал транспорт?

    Есть ли возможность подцепить старую общую папку?

    Проблема номер 2 – при перезагрузке старого 2007 exchange оутлук отключается.

    Проблема номер 3 – после нескольких перезапусков репликация вообще перестала работать.

    Что не так? в какую сторону копать?

    Спасибо.
    PS Как сделать это осторожно?
    “Следует помнить, что если размер общих папок превышает 20-30 Гб, то первую операцию выполнять необходимо крайне осторожно, иначе существует большая вероятность уронить транспортные сервера, которые просто не справятся с таким потоком писем и отключат транспортный сервис, который после этого придётся восстанавливать.”

  2. 2ЕВгений

    В Вашем случае придётся общие папки переносить частями. То есть добавлять реплику на новый сервер не сразу на корень “/”, а на подпапки, общий размер которых 10-15 Гб (не больше). И ждать пока завершится репликация. Наблюдать за процессом можно через просмотрщик очередей. В этом случае транспортный сервер падать не должен.

    Если интересно, восстановление базы очередей транспортного сервера у меня описано здесь – http://www.buldakov.ru/?p=935

    По проблемам 2-3 ответить не смогу – не хватает информации.

  3. Здравствуйте ещё раз.

    Как можно востановить общую папку? есть edb в ней копии писем после миграции и использования скриптов.
    Спасибо.

  4. =)
    Вообщем раскажу всё по порядку.

    ex1-2007 | ex2-2010

    запуск скрипта

    1. MoveAllReplicas.ps1 -Server ex1 -NewServer ex2
    ReplaceReplicaOnPFRecursive.ps1 -TopPublicFolder “” -ServerToAdd ex2 -ServerToRemove ex1

    сработало

    2. get-publicfolder на ex1 и на ex2
    общие папки и там и там остались, единственное что поменялось, это в свойствах репликации изменилось имя сервера со старого на новый, через консоль управления в свойствах баз, в параметрах клиента изменил базу данных общих папок.

    письма со временем начали появлятся

    так как писем было 200000 процес был долгим

    вроде всё перенеслось. всё хорошо

    3. get-publicfolder на ex1 и на ex2 так же показывали что на обоих серверах есть общие папки )

    пришло время удалять ex1

    попытался удалить вылезла ошибка, в общей папке есть репликации и ссылка на мануал

    4. по этой ссылке MoveAllReplicas.ps1 -Server ex1 -NewServer ex2
    ReplaceReplicaOnPFRecursive.ps1 -TopPublicFolder “” -ServerToAdd ex2 -ServerToRemove ex1

    надо было сделать, собственно то что было сделано уже давно,

    ну запустил я её, всё сработало и вся почта в общих папка исчезла, остался только файл edb размером в 40 гб

    как её подключить?

    зато после последнего использования MoveAllReplicas.ps1, на старом серевре get-publicfolder показало что общие папки пусты, и сервак благополучно деинсталировался

    зато на новом get-publicfolder пишет что папок нет, но через консоль управления она есть и ей можно управлять, у пользователей она также имеется

    Собственно вопрос – как подключить этот файл размером в 40 гб?

    PS get-publicfolder – когда её запускаешь она говорит что общих папок нет. Но она есть.[PS] C:Windowssystem32>get-publicfolder
    Name Parent Path
    —- ———–
    IPM_SUBTREE
    PS] C:Windowssystem32>Get-MailboxDatabase | fl PublicFolderDatabase
    PublicFolderDatabase : Public Folder
    PublicFolderDatabase : Public Folder
    PublicFolderDatabase : Public Folder
    PublicFolderDatabase : Public Folder

  5. В Event Log на обоих серверах есть что связанное с общими папками?

    Как я понял на новом сервере есть только дерево общих папок, а самих данных из общих папок нет? Я правильно понял? Если так, то придётся восстанавливать старый сервер в лабораторной среде и восстанавливать на него из бэкапа базу общих папок. Потом эти данные можно, например, через pst-файлы перенести на новый сервер.

  6. Доброе утро.
    Процесс w3wp.exe () (идентификатор процесса=8596). Объект [CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=DOMAIN,DC=local]. Для свойства [GlobalAddressList] установлено значение [atrans.local/Configuration/Deleted Objects/Глобальный список адресов по умолчанию
    DEL:d2de4aa8-ccff-4a12-b101-99ea9c7d2a4e], оно указывает на контейнер удаленных объектов в службе Active Directory. Это свойство необходимо исправить как можно скорее.

    – System

    – Provider

    [ Name] MSExchange ADAccess

    – EventID 2937

    [ Qualifiers] 32768

    Level 3

    Task 6

    Keywords 0x80000000000000

    – TimeCreated

    [ SystemTime] 2012-01-18T14:19:40.000000000Z

    EventRecordID 211539

    Channel Application

    Computer MSKMAIL.atrans.local

    Security

    – EventData

    w3wp.exe ()
    8596
    CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=DOMAIN,DC=local
    GlobalAddressList
    atrans.local/Configuration/Deleted Objects/Глобальный список адресов по умолчанию DEL:d2de4aa8-ccff-4a12-b101-99ea9c7d2a4e

    Эта ошибка появилась после удаления общей папки. Вроде в евент логах больше ничего нет.
    Спасибо за Вашу помощь.

  7. Вы умудрились Global Address List удалить чтоли? Эта ошибка к проблеме с общими папками отношения не имеет. Создайте его заново.

    По общим папкам предложение с восстановлением в лабораторной среде остаётся в силе.

  8. Здравствуйте! У меня в организации четыре сервера Exchange 2010, размещенные в разных доменах (один лес, одно дерево с дочерними доменами) в разных сайтах. Попытался разграничить права доступа администраторов только к своим пользователям (создавал область получателей с ограничением по домену, как пример в статье), но они все равно видят всех пользователей всех доменов, имеют на любой ящик все права, игнорируя параметр -RecipientRoot “dom.domain.ru” (только свой домен). В чем может быть проблема?

Leave a Reply

Your email address will not be published. Required fields are marked *