Подготовка почтовых ящиков к перемещению между лесами с использованием скрипта Prepare-MoveRequest.ps1 в консоли

Область применения: Exchange Server 2013 г.

Сводка: Узнайте, как управлять перемещением и миграцией почтовых ящиков между лесами в Exchange 2013 с помощью скрипта Prepare-MoveRequest.ps1 в командной консоли Exchange.

Microsoft Exchange 2013 поддерживает перемещение и миграцию почтовых ящиков с помощью командлетов New-MoveRequest и New-MigrationBatch. Вы также можете переместить почтовый ящик с помощью Центра администрирования Exchange. Почтовый ящик Exchange 2010 или Exchange 2013 можно переместить из исходного леса Exchange в целевой лес Exchange 2013.

Чтобы выполнить командлеты New-MoveRequest и New-MigrationBatch, пользователь почты должен существовать в конечном лесу Exchange и этого пользователя должен быть минимальный набор требуемых атрибутов Active Directory.

Пример скрипта Windows PowerShell, представленный в этом разделе поддерживает эту задачу, синхронизируя пользователей почтовых ящиков из исходного леса Exchange 2013 в конечные леса Exchange 2013 как пользователей с поддержкой почты. По этому сценарию выполняется копирование атрибутов Active Directory пользователей почтовых ящиков в исходном лесу в целевой лес, а затем используется командлет Update-Recipient для преобразования целевых объектов в пользователей с включенной поддержкой почты.

Дополнительные сведения об использовании и записи сценариев см. в разделе Scripting with the Exchange Management Shell. Дополнительные сведения о подготовке к перемещению между лесами см. в разделе Подготовка почтовых ящиков к запросам на перемещение между лесами.

Ищете другие задачи управления, связанные с запросами на удаленное перемещение? Ознакомьтесь с статьей Управление локальными перемещениями.

Что нужно знать перед началом работы

  • Найдите скрипт в следующем расположении: %ExchangeInstallPath%Scripts

  • Для выполнения этого примера сценария необходимы следующие компоненты:

    • Исходный лес Exchange, в котором сейчас находится почтовый ящик. Это может быть почтовый ящик Exchange 2010 или Exchange 2013.

    • Целевой лес с установленной системой Exchange 2013, в который необходимо переместить почтовый ящик.

Совет

Возникли проблемы? Обратитесь за помощью к участникам форумов Exchange. Посетите форумы по адресу Exchange Server.

Использование сценария Prepare-MoveRequest.ps1 для подготовки почтовых ящиков к перемещениям между лесами

Запустите этот сценарий в командной консоли для роли сервера под управлением Exchange 2013 в целевом лесу Exchange 2013. Сценарий выполнит копирование атрибутов почтового ящика из исходного леса.

Чтобы назначить определенные учетные данные проверки подлинности для удаленного контроллера домена леса, необходимо сначала запустить командлет Windows PowerShell Get-Credential и сохранить входные данные пользователя во временной переменной. При выполнении командлета Get-Credential он запрашивает имя пользователя и пароль учетной записи, используемой при проверке подлинности на контроллере домена удаленного леса. Затем можно использовать временную переменную в сценарии Prepare-MoveRequest.ps1. Дополнительные сведения о командлете Get-Credential см. в разделе Get-Credential.

Примечание.

Убедитесь, что при вызове этого сценария для локального и удаленного лесов используются различные учетные данные.

  1. Выполните следующие команды, чтобы получить учетные данные локального и удаленного лесов.

    $LocalCredentials = Get-Credential
    $RemoteCredentials = Get-Credential
    
  2. Выполните следующие команды, чтобы передать эти учетные данные в параметры LocalForestCredential и RemoteForestCredential в скрипте Prepare-MoveRequest.ps1.

    Prepare-MoveRequest.ps1 -Identity JohnSmith@Fabrikan.com -RemoteForestDomainController DC001.Fabrikam.com -RemoteForestCredential $RemoteCredentials -LocalForestDomainController DC001.Contoso.com -LocalForestCredential $LocalCredentials
    

Набор параметров скрипта

В следующей таблице указан набор параметров для этого сценария.

Набор параметров для сценария Prepare-MoveRequest.ps1

Параметр Обязательный Описание
Identity Обязательный Параметр Identity однозначно определяет почтовый ящик в исходном лесу. Идентификатором может быть:
  • Общее имя (CN)
  • Alias
  • Свойство proxyAddress
  • Свойство objectGuid
  • Свойство DisplayName
RemoteForestCredential Обязательный Параметр RemoteForestCredential указывает администратора, который имеет разрешения на копирование данных из исходного леса Active Directory.
RemoteForestDomainController Обязательный Параметр RemoteForestDomainController указывает контроллер домена в исходном лесу, где находится почтовый ящик.
DisableEmailAddressPolicy Необязательный Параметр DisableEmailAddressPolicy указывает, следует ли отключить политику адресов Email (EAP) при создании объекта MailUser в целевом лесу.

При указании этого параметра политика адресов электронной почты не будет применяться в целевом лесу.

Примечание. При указании этого параметра объект MailUser не будет иметь сопоставления адресов электронной почты в локальном домене леса. Обычно он отмечается с помощью политики адресов электронной почты.
LinkedMailUser Необязательный Параметр LinkedMailUser указывает, следует ли создать связанный MailUser в локальном лесу для пользователя почтового ящика в удаленном лесу.

При указании этого параметра согласно сценарию создается целевой объект MailUser, связанный с исходным почтовым ящиком. Если этот параметр не указан, то по сценарию создается обычный целевой объект MailUser.
LocalForestCredential Необязательный Параметр LocalForestCredential указывает администратора с разрешениями на запись данных в целевой лес Active Directory.

Рекомендуется указать этот параметр явным образом, чтобы избежать проблем с разрешениями Active Directory.

Если в удаленном и локальном лесах настроено отношение доверия, не используйте учетную запись пользователя из удаленного леса в качестве учетных данных локального леса, даже если учетная запись удаленного пользователя имеет разрешение на изменение службы каталогов Active Directory в локальном лесу.
LocalForestDomainController Необязательный Параметр LocalForestDomainController указывает контроллер домена в целевом лесу, где будет создан пользователь с поддержкой почты.

Рекомендуется указать этот параметр, чтобы избежать возможных проблем с задержкой репликации контроллера домена в локальном лесу, которые могут произойти при выборе случайного контроллера домена.
MailboxDeliveryDomain Необязательный Параметр MailboxDeliveryDomain указывает полномочный домен исходного леса, чтобы скрипт смог выбрать правильное свойство proxyAddress пользователя исходного почтового ящика в качестве свойства targetAddress целевого пользователя с поддержкой почты.

По умолчанию для основного SMTP-адреса пользователя исходного почтового ящика установлено свойство targetAddress целевого пользователя с включенной поддержкой почты.
OverWriteLocalObject Необязательный Параметр OverWriteLocalObject используется для пользователей, созданных средством миграции Active Directory. При этом свойства существующего почтового контакта копируются для нового почтового пользователя. После этого сценарий также копирует для нового почтового пользователя свойства пользователя исходного леса.
TargetMailUserOU Необязательный Параметр TargetMailuserOU указывает подразделение, в котором будет создан целевой пользователь с поддержкой почты.
UseLocalObject Необязательный Параметр UseLocalObject указывает, требуется ли преобразовывать существующий локальный объект в необходимого целевого пользователя с включенной поддержкой почты, если сценарием будет обнаружен в локальном лесу объект, конфликтующий с создаваемым пользователем с включенной поддержкой почты.

Примеры

В этом разделе приведено несколько примеров возможного использования сценария Prepare-MoveRequest.ps1.

Пример. Один связанный пользователь с поддержкой почты

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

  1. Выполните следующие команды, чтобы получить учетные данные локального и удаленного лесов.

    $LocalCredentials = Get-Credential
    $RemoteCredentials = Get-Credential
    
  2. Выполните следующую команду, чтобы передать эти учетные данные в параметры LocalForestCredential и RemoteForestCredential в скрипте Prepare-MoveRequest.ps1.

    Prepare-MoveRequest.ps1 -Identity JamesAlvord@Contoso.com -RemoteForestDomainController DC001.Fabrikam.com -RemoteForestCredential $RemoteCredentials -LocalForestDomainController DC001.Contoso.com -LocalForestCredential $LocalCredentials -LinkedMailUser
    

Пример. Конвейеризация

В этом примере иллюстрируется поддержка конвейерного режима при указании списка идентификаторов почтового ящика.

  1. Выполните следующую команду.

    $UserCredentials = Get-Credential
    
  2. Выполните следующую команду, чтобы передать эти учетные данные в параметр RemoteForestCredential в сценарии Prepare-MoveRequest.ps1.

    "IanP@Contoso.com","JoeAn@Contoso.com" | Prepare-MoveRequest.ps1 -RemoteForestDomainController DC001.Fabrikam.com -RemoteForestCredential $UserCredentials
    

Пример. Использование CSV-файла для массового создания пользователей с поддержкой почты

Вы можете создать CSV-файл со списком идентификаторов почтовых ящиков из исходного леса, что позволяет направлять содержимое этого файла в скрипт для массового создания пользователей с поддержкой почты.

Например, CSV-файл может иметь следующее содержимое:

Identity
Ian@contoso.com
John@contoso.com
Cindy@contoso.com

В этом примере вызывается CSV-файл для массового создания пользователей с поддержкой почты.

  1. Выполните следующую команду, чтобы получить учетные данные леса.

    $UserCredentials = Get-Credential
    
  2. Выполните следующую команду, чтобы передать эти учетные данные в параметр RemoteForestCredential в сценарии Prepare-MoveRequest.ps1.

    Import-Csv Test.csv | Prepare-MoveRequest.ps1 -RemoteForestDomainController DC001.Fabrikam.com -RemoteForestCredential $UserCredentials
    

Поведение скрипта в зависимости от конечного объекта

В этом разделе описывается выполнение скрипта по отношению к нескольким сценариям для конечных объектов.

Дублирование целевого объекта с включенной поддержкой почты

При попытке сценария создать целевого пользователя с включенной поддержкой почты на основе пользователя исходного почтового ящика и обнаружении дублированного локального объекта с включенной поддержкой почты используется следующая логика.

  • Если атрибут masterAccountSid пользователя исходного почтового ящика соответствует какому-либо атрибуту objectSid или masterAccountSid целевого объекта, то:
    • Если для целевого объекта отключена поддержка почты, то сценарием возвращается сообщение об ошибке, так как он не поддерживает преобразование объекта с отключенной поддержкой почты в пользователя с включенной поддержкой почты.
    • Если для целевого объекта включена поддержка почты, он является дубликатом.
  • Если адрес в свойствах proxyAddress (только smtp/x500) пользователя исходного почтового ящика соответствует адресу в свойствах proxyAddress (только smtp/x500) целевого объекта, то целевой объект является дубликатом.

Сценарий запрашивает пользователя о дубликатах объектов.

Если целевой объект с включенной поддержкой почты является пользователем или контактом с включенной поддержкой почты, созданным, по всей вероятности, при развертывании синхронизации глобального списка адресов (GAL) между лесами (на основе Identity Lifecycle Management 2007 с пакетом обновления 1 (SP1)), то пользователь может повторно запустить сценарий с параметром UseLocalObject, чтобы использовать целевой объект с включенной поддержкой почты для миграции почтовых ящиков.

Пользователь с включенной поддержкой почты

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

  • msExchMailboxGUID
  • msExchArchiveGUID
  • msExchArchiveName

Если задан параметр LinkedMailUser , скрипт копирует атрибут source objectSid/masterAccountSid .

Контакт с включенной поддержкой почты

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

  • msExchMailboxGUID
  • msExchArchiveGUID
  • msExchArchiveName
  • Samaccountname
  • userAccountControl (для параметра задано значение 514 //эквивалента )0x202, ACCOUNTDISABLE | NORMAL_ACCOUNT
  • userPrincipalName.

Если задан параметр LinkedMailUser , скрипт копирует атрибут source objectSid/masterAccountSid .

Атрибут LegacyExchangeDN

При вызове командлета Update-Recipient для преобразования целевого объекта в пользователя с включенной поддержкой почты создается новый атрибут LegacyExchangeDN для целевого пользователя с включенной поддержкой почты. В соответствии со сценарием копируется атрибут LegacyExchangeDN целевого пользователя с включенной поддержкой почты в качестве адреса x500 для свойств proxyAddress пользователя исходного почтового ящика.