Подготовка почтовых ящиков к перемещению между лесами с использованием скрипта 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.
Примечание.
Убедитесь, что при вызове этого сценария для локального и удаленного лесов используются различные учетные данные.
Выполните следующие команды, чтобы получить учетные данные локального и удаленного лесов.
$LocalCredentials = Get-Credential $RemoteCredentials = Get-Credential
Выполните следующие команды, чтобы передать эти учетные данные в параметры 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 однозначно определяет почтовый ящик в исходном лесу. Идентификатором может быть:
|
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.
Пример. Один связанный пользователь с поддержкой почты
В этом примере выполняется подготовка одного связанного пользователя с включенной поддержкой почты в локальном лесу, в котором существует доверие леса между удаленным и локальным лесами.
Выполните следующие команды, чтобы получить учетные данные локального и удаленного лесов.
$LocalCredentials = Get-Credential $RemoteCredentials = Get-Credential
Выполните следующую команду, чтобы передать эти учетные данные в параметры 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
Пример. Конвейеризация
В этом примере иллюстрируется поддержка конвейерного режима при указании списка идентификаторов почтового ящика.
Выполните следующую команду.
$UserCredentials = Get-Credential
Выполните следующую команду, чтобы передать эти учетные данные в параметр 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-файл для массового создания пользователей с поддержкой почты.
Выполните следующую команду, чтобы получить учетные данные леса.
$UserCredentials = Get-Credential
Выполните следующую команду, чтобы передать эти учетные данные в параметр 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 пользователя исходного почтового ящика.