Подготовка почтовых ящиков к перемещению между лесами с использованием скрипта Prepare-MoveRequest.ps1 в консолиPrepare mailboxes for cross-forest moves using the Prepare-MoveRequest.ps1 script in the Shell

 

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

Сводка: Узнайте, как управлять перемещениями и переносами почтовых ящиков между лесами в Exchange 2013 с помощью сценария сценария Prepare-MoveRequest. ps1 в командной консоли Exchange.Summary: Learn how to manage cross-forest mailbox moves and migrations in Exchange 2013 by using the Prepare-MoveRequest.ps1 script in the Exchange Management Shell.

Microsoft Exchange 2013 поддерживает перемещение и миграцию почтовых ящиков с помощью командлетов New-MoveRequest и New-MigrationBatch.Microsoft Exchange 2013 supports mailbox moves and migrations using the New-MoveRequest and New-MigrationBatch cmdlets. Вы также можете переместить почтовый ящик через Центр администрирования Exchange (EAC).You can also move the mailbox via the Exchange Administration Center (EAC). Вы можете переместить почтовый ящик Exchange 2010 или Exchange 2013 из исходного леса Exchange в целевой лес Exchange 2013.You can move an Exchange 2010 or Exchange 2013 mailbox from a source Exchange forest to a target Exchange 2013 forest.

Чтобы выполнить командлеты New-MoveRequest и New-MigrationBatch, пользователь почты должен существовать в конечном лесу Exchange и этого пользователя должен быть минимальный набор требуемых атрибутов Active Directory.To run the New-MoveRequest and New-MigrationBatch cmdlets, a mail user must exist in the target Exchange forest, and the mail user must have a minimum set of required Active Directory attributes.

Пример скрипта Windows PowerShell, представленный в этом разделе поддерживает эту задачу, синхронизируя пользователей почтовых ящиков из исходного леса Exchange 2013 в конечные леса Exchange 2013 как пользователей с поддержкой почты. По этому сценарию выполняется копирование атрибутов Active Directory пользователей почтовых ящиков в исходном лесу в целевой лес, а затем используется командлет Update-Recipient для преобразования целевых объектов в пользователей с включенной поддержкой почты.The sample Windows PowerShell script described in this topic supports this task by synchronizing mailbox users from an Exchange 2013 source forest to Exchange 2013 target forests as mail-enabled users. The script copies the Active Directory attributes of the mailbox users in the source forest to the target forest, and then uses the Update-Recipient cmdlet to turn the target objects into mail-enabled users.

Дополнительные сведения об использовании и записи сценариев см. в разделе Scripting with the Exchange Management Shell. Дополнительные сведения о подготовке к перемещению между лесами см. в разделе Подготовка почтовых ящиков для запросов на перемещение между лесами.For more information about using and writing scripts, see Scripting with the Exchange Management Shell. For more information about preparing for cross-forest moves, see Prepare mailboxes for cross-forest move requests.

Необходимы сведения о других задачах управления, связанных с удаленными запросами на перемещение? см. в разделе Управление локальными перемещениями.Looking for other management tasks related to remote move requests? Check out Manage on-premises moves.

Что нужно знать перед началом работыWhat do you need to know before you begin?

  • В следующем расположении находится сценарий: Program Files\Microsoft\Exchange Server\V15\ScriptsLocate the script in the following location: Program Files\Microsoft\Exchange Server\V15\Scripts

  • Для выполнения этого примера сценария необходимы следующие компоненты:To run the sample script, you need the following:

    • Лес источника Exchange, в котором в данный момент находится почтовый ящик.An Exchange source forest, where the mailbox currently resides. Это может быть почтовый ящик Exchange 2010 или Exchange 2013.This can be an Exchange 2010 or Exchange 2013 mailbox.

    • Целевой лес с установленной системой Exchange 2013, в который необходимо переместить почтовый ящик.A target forest with Exchange 2013 installed, where the mailbox will be moved to.

Совет

Возникли проблемы?Having problems? Обратитесь за помощью к участникам форумов Exchange.Ask for help in the Exchange forums. Посетите форумы по Exchange Server, Exchange Onlineили Exchange Online Protection.Visit the forums at Exchange Server, Exchange Online, or Exchange Online Protection.

Использование сценария Prepare-MoveRequest.ps1 для подготовки почтовых ящиков к перемещениям между лесамиUse the Prepare-MoveRequest.ps1 script to prepare mailboxes for cross-forest moves

Запустите этот сценарий в командной консоли для роли сервера под управлением Exchange 2013 в целевом лесу Exchange 2013. Сценарий выполнит копирование атрибутов почтового ящика из исходного леса.Run the script from the Shell on a server role running Exchange 2013 in the target Exchange 2013 forest. The script copies the mailbox attributes from the source forest.

Чтобы назначить учетные данные для проверки подлинности для контроллера домена удаленного леса, необходимо предварительно выполнить командлет Windows PowerShell Get-Credential и сохранить введенные пользователем данные во временной переменной. При выполнении командлета Get-Credential он запрашивает имя пользователя и пароль учетной записи, используемой при проверке подлинности на контроллере домена удаленного леса. Затем можно использовать временную переменную в сценарии Prepare-MoveRequest.ps1. Дополнительные сведения о командлете Get-Credential см. в разделе Get-Credential.To assign a specific authentication credential for the remote forest domain controller, you must first run the Windows PowerShell Get-Credential cmdlet and store the user input in a temporary variable. When you run the Get-Credential cmdlet, the cmdlet asks for the user name and password of the account used during authentication with the remote forest domain controller. You can then use the temporary variable in the Prepare-MoveRequest.ps1 script. For more information about the Get-Credential cmdlet, see Get-Credential.

Примечание

Убедитесь, что при вызове этого сценария для локального и удаленного лесов используются различные учетные данные.Make sure that you use two separate credentials for the local forest and the remote forest when calling this script.

  1. Выполните следующие команды, чтобы получить учетные данные локального и удаленного лесов.Run the following commands to get the local forest and remote forest credentials.

        $LocalCredentials = Get-Credential
        $RemoteCredentials = Get-Credential
    
  2. Выполните следующие команды, чтобы передать эти учетные данные в параметры LocalForestCredential и RemoteForestCredential в скрипте Prepare-MoveRequest.ps1.Run the following commands to pass the credential information to the LocalForestCredential and RemoteForestCredential parameters in the Prepare-MoveRequest.ps1 script.

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

Набор параметров скриптаParameter set of the script

В следующей таблице указан набор параметров для этого сценария.The following table describes the parameter set for the script.

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

ПараметрParameter ОбязательныйRequired ОписаниеDescription

IdentityIdentity

ОбязательныйRequired

Параметр Identity однозначно определяет почтовый ящик в исходном лесу.The Identity parameter uniquely identifies a mailbox in the source forest. Идентификатором может быть:Identity can be any of the following:

  • Общее имя (CN)Common name (CN)

  • AliasAlias

  • Свойство proxyAddressproxyAddress property

  • Свойство objectGuidobjectGuid property

  • Свойство DisplayNameDisplayName property

RemoteForestCredentialRemoteForestCredential

ОбязательныйRequired

Параметр RemoteForestCredential указывает администратора, который имеет разрешения на копирование данных из Active Directory исходного леса.The RemoteForestCredential parameter specifies the administrator who has permissions to copy data from the source forest Active Directory.

RemoteForestDomainControllerRemoteForestDomainController

ОбязательныйRequired

Параметр RemoteForestDomainController указывает контроллер домена в исходном лесу, в котором находится почтовый ящик.The RemoteForestDomainController parameter specifies a domain controller in the source forest where the mailbox resides.

DisableEmailAddressPolicyDisableEmailAddressPolicy

При необходимостиOptional

Параметр DisableEmailAddressPolicy указывает, следует ли отключать политику адресов электронной почты (EAP) при создании объекта MailUser в целевом лесу.The DisableEmailAddressPolicy parameter specifies whether the Email Address Policy (EAP) should be disabled when creating a MailUser object in the target forest.

При указании этого параметра политика адресов электронной почты не будет применяться в целевом лесу.When you specify this parameter, the EAP in the target forest won't be applied.

Примечание

При указании этого параметра объект MailUser не будет отмечен с помощью сопоставления адресов электронной почты в домене локального леса.When you specify this parameter, the MailUser object won't have e-mail address mapping in the local forest domain stamped. Обычно он отмечается с помощью политики адресов электронной почты.This is usually stamped by the EAP.

LinkedMailUserLinkedMailUser

При необходимостиOptional

Параметр LinkedMailUser указывает, следует ли создать связанный MailUser в локальном лесу для пользователя почтового ящика в удаленном лесу.The LinkedMailUser switch specifies whether to create a linked MailUser in the local forest for the mailbox user in the remote forest.

При указании этого параметра согласно сценарию создается целевой объект MailUser, связанный с исходным почтовым ящиком. Если этот параметр не указан, то по сценарию создается обычный целевой объект MailUser. If the switch is provided, the script creates a target MailUser object linked to the source mailbox. If the switch is omitted, the script creates a regular target MailUser object.

LocalForestCredentialLocalForestCredential

При необходимостиOptional

Параметр LocalForestCredential указывает администратора с разрешениями на запись данных в Active Directory конечного леса.The LocalForestCredential parameter specifies the administrator with permissions to write data to the target forest Active Directory.

Рекомендуется указать этот параметр явным образом, чтобы избежать проблем с разрешениями Active Directory.We recommend that you explicitly specify this parameter to avoid Active Directory permission issues.

Если в удаленном и локальном лесах настроено отношение доверия, не используйте учетную запись пользователя из удаленного леса в качестве учетных данных локального леса, даже если учетная запись удаленного пользователя имеет разрешение на изменение службы каталогов Active Directory в локальном лесу.If the remote forest and the local forest have a trusted relationship configured, don't use a user account from the remote forest as the local forest credential, even though the remote user account may have permission to modify Active Directory in the local forest.

LocalForestDomainControllerLocalForestDomainController

При необходимостиOptional

Параметр LocalForestDomainController указывает контроллер домена в целевом лесу, в котором будет создан пользователь с включенной поддержкой почты.The LocalForestDomainController parameter specifies a domain controller in the target forest where the mail-enabled user will be created.

Рекомендуется указать этот параметр, чтобы избежать возможных проблем с задержкой репликации контроллера домена в локальном лесу, которые могут произойти при выборе случайного контроллера домена.We recommend that you specify this parameter to avoid possible domain controller replication delay issues in the local forest that could occur if a random domain controller is selected.

МаилбоксделиверидомаинMailboxDeliveryDomain

При необходимостиOptional

Параметр маилбоксделиверидомаин указывает уполномоченный домен исходного леса, чтобы сценарий мог выбрать правильное свойство proxyAddress пользователя исходного почтового ящика в качестве цели targetAddress конечного пользователя с включенной поддержкой почты. свойств.The MailboxDeliveryDomain parameter specifies an authoritative domain of the source forest so that the script can select the correct source mailbox user's proxyAddress property as the target mail-enabled user's targetAddress property.

По умолчанию для основного SMTP-адреса пользователя исходного почтового ящика установлено свойство targetAddress целевого пользователя с включенной поддержкой почты.By default, the primary SMTP address of the source mailbox user is set as the targetAddress property of the target mail-enabled user.

ОверврителокалобжектOverWriteLocalObject

При необходимостиOptional

Параметр оверврителокалобжект используется для пользователей, созданных с помощью средства миграции Active Directory.The OverWriteLocalObject parameter is used for users created by the Active Directory Migration Tool. При этом свойства существующего почтового контакта копируются для нового почтового пользователя.The properties are copied from the existing mail contact to the newly created mail user. После этого сценарий также копирует для нового почтового пользователя свойства пользователя исходного леса.However, after this copy, the script also copies the properties from the source forest user to the newly created mail user.

TargetMailUserOUTargetMailUserOU

При необходимостиOptional

Параметр TargetMailuserOU указывает подразделение, в котором будет создан целевой пользователь с включенной поддержкой почты.The TargetMailuserOU parameter specifies the organizational unit (OU) under which the target mail-enabled user will be created.

UseLocalObjectUseLocalObject

НеобязательныйOptional

Параметр UseLocalObject указывает, требуется ли преобразовывать существующий локальный объект в необходимого целевого пользователя с включенной поддержкой почты, если сценарием будет обнаружен в локальном лесу объект, конфликтующий с создаваемым пользователем с включенной поддержкой почты.The UseLocalObject parameter specifies whether to convert the existing local object to the required target mail-enabled user if the script detects an object in the local forest that conflicts with the to-be-created mail-enabled user.

ПримерыExamples

В этом разделе приведено несколько примеров возможного использования сценария Prepare-MoveRequest.ps1.This section contains several examples of how you can use the Prepare-MoveRequest.ps1 script.

Пример. Один связанный пользователь с поддержкой почтыExample: Single linked mail-enabled user

В этом примере выполняется подготовка одного связанного пользователя с включенной поддержкой почты в локальном лесу, в котором существует доверие леса между удаленным и локальным лесами.This example provisions a single linked mail-enabled user in the local forest, when there is forest trust between the remote forest and local forest.

  1. Выполните следующие команды, чтобы получить учетные данные локального и удаленного лесов.Run the following commands to get the local forest and remote forest credentials.

        $LocalCredentials = Get-Credential
        $RemoteCredentials = Get-Credential
    
  2. Выполните следующую команду, чтобы передать эти учетные данные в параметры LocalForestCredential и RemoteForestCredential в скрипте Prepare-MoveRequest.ps1.Run the following command to pass the credential information to the LocalForestCredential and RemoteForestCredential parameters in the Prepare-MoveRequest.ps1 script.

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

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

В этом примере иллюстрируется поддержка конвейерного режима при указании списка идентификаторов почтового ящика.This example supports pipelining if you supply a list of mailbox identities.

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

    $UserCredentials = Get-Credential
    
  2. Выполните следующую команду, чтобы передать сведения об учетных данных параметру RemoteForestCredential в сценарии сценария Prepare-MoveRequest. ps1.Run the following command to pass the credential information to the RemoteForestCredential parameter in the Prepare-MoveRequest.ps1 script.

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

Пример. Использование CSV-файла для массового создания пользователей с поддержкой почтыExample: Use a .csv file to bulk-create mail-enabled users

Вы можете создать CSV-файл со списком идентификаторов почтовых ящиков из исходного леса, что позволяет направлять содержимое этого файла в скрипт для массового создания пользователей с поддержкой почты.You can generate a .csv file containing a list of mailbox identities from the source forest, which allows you to pipe the content of this file into the script to bulk-create the target mail-enabled users.

Например, CSV-файл может иметь следующее содержимое:For example, the content of the .csv file can be:

Параметр Identity (идентификатор)Identity

Ian@contoso.comIan@contoso.com

John@contoso.comJohn@contoso.com

Cindy@contoso.comCindy@contoso.com

В этом примере вызывается CSV-файл для массового создания пользователей с поддержкой почты.This example calls a .csv file to bulk create the target mail-enabled users.

  1. Выполните следующую команду, чтобы получить учетные данные леса.Run the following command to get the remote forest credentials.

    $UserCredentials = Get-Credential
    
  2. Выполните следующую команду, чтобы передать эти учетные данные в параметр RemoteForestCredential в сценарии Prepare-MoveRequest.ps1.Run the following command to pass the credential information to the RemoteForestCredential parameter in the Prepare-MoveRequest.ps1 script.

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

Поведение скрипта в зависимости от конечного объектаScript behavior per target object

В этом разделе описывается выполнение скрипта по отношению к нескольким сценариям для конечных объектов.This section describes how the script performs in relation to several scenarios for target objects.

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

При попытке сценария создать целевого пользователя с включенной поддержкой почты на основе пользователя исходного почтового ящика и обнаружении дублированного локального объекта с включенной поддержкой почты используется следующая логика.When the script attempts to create a target mail-enabled user from the source mailbox user, and it detects a duplicate local mail-enabled object, it uses the following logic:

  • Если атрибут masterAccountSid пользователя исходного почтового ящика соответствует какому-либо атрибуту objectSid или masterAccountSid целевого объекта, то:If the source mailbox user's masterAccountSid attribute equals any target object's objectSid or masterAccountSid attribute:

    • Если для целевого объекта отключена поддержка почты, то сценарием возвращается сообщение об ошибке, так как он не поддерживает преобразование объекта с отключенной поддержкой почты в пользователя с включенной поддержкой почты.If the target object isn't mail-enabled, the script returns an error because the script doesn't support converting an object that isn't mail-enabled to a mail-enabled user.

    • Если для целевого объекта включена поддержка почты, он является дубликатом.If the target object is mail-enabled, the target object is a duplicate.

  • Если адрес в свойствах proxyAddress (только smtp/x500) пользователя исходного почтового ящика соответствует адресу в свойствах proxyAddress (только smtp/x500) целевого объекта, то целевой объект является дубликатом.If an address in the source mailbox user's proxyAddress properties (smtp/x500 only) equals an address in a target object's proxyAddress properties (smtp/x500 only), the target object is a duplicate.

Сценарий запрашивает пользователя о дубликатах объектов.The script prompts the user about the duplicate objects.

Если целевой объект с включенной поддержкой почты является пользователем или контактом с включенной поддержкой почты, созданным, по всей вероятности, при развертывании синхронизации глобального списка адресов (GAL) между лесами (на основе Identity Lifecycle Management 2007 с пакетом обновления 1 (SP1)), то пользователь может повторно запустить сценарий с параметром UseLocalObject, чтобы использовать целевой объект с включенной поддержкой почты для миграции почтовых ящиков.If the target mail-enabled object is a mail-enabled user or contact, which is most likely created by a cross-forest (Identity Lifecycle Management 2007 Service Pack 1-based) global address list (GAL) synchronization deployment, the user can run the script again with the UseLocalObject parameter to use the target mail-enabled object for mailbox migration.

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

Если целевой объект является пользователем с включенной поддержкой почты, сценарий копирует следующие атрибуты пользователя исходного почтового ящика для целевого пользователя с включенной поддержкой почты:If the target object is a mail-enabled user, the script copies the following attributes from the source mailbox user to the target mail-enabled user:

  • msExchMailboxGUIDmsExchMailboxGUID

  • МсексчарчивегуидmsExchArchiveGUID

  • МсексчарчивенамеmsExchArchiveName

Если задан параметр LinkedMailUser , сценарий копирует исходный атрибут objectSid/masterAccountSid .If the LinkedMailUser parameter is set, the script copies the source objectSid/masterAccountSid attribute.

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

Если целевой объект является контактом с включенной поддержкой почты, сценарий удаляет существующий контакт и копирует все его атрибуты для нового пользователя с включенной поддержкой почты. Сценарий также копирует следующие атрибуты пользователя исходного почтового ящика:If the target object is a mail-enabled contact, the script deletes the existing contact and copies all its attributes to a new mail-enabled user. The script also copies the following attributes from the source mailbox user:

  • msExchMailboxGUIDmsExchMailboxGUID

  • МсексчарчивегуидmsExchArchiveGUID

  • МсексчарчивенамеmsExchArchiveName

  • sAMAccountNamesAMAccountName

  • userAccountControl (значение 514 формат для 0x202, ACCOUNTDISABLE | Обычная_учетная запись)userAccountControl (set to 514 //equivalent to 0x202, ACCOUNTDISABLE | NORMAL_ACCOUNT)

  • userPrincipalNameuserPrincipalName

Если задан параметр LinkedMailUser , сценарий копирует исходный атрибут objectSid/masterAccountSid .If the LinkedMailUser parameter is set, the script copies the source objectSid/masterAccountSid attribute.

Атрибут LegacyExchangeDNLegacyExchangeDN attribute

При вызове командлета Update-Recipient для преобразования целевого объекта в пользователя с включенной поддержкой почты создается новый атрибут LegacyExchangeDN для целевого пользователя с включенной поддержкой почты. В соответствии со сценарием копируется атрибут LegacyExchangeDN целевого пользователя с включенной поддержкой почты в качестве адреса x500 для свойств proxyAddress пользователя исходного почтового ящика.When the Update-Recipient cmdlet is called to convert the target object into a mail-enabled user, a new LegacyExchangeDN attribute is generated for the target mail-enabled user. The script copies the LegacyExchangeDN attribute of the target mail-enabled user as an x500 address to the proxyAddress properties of the source mailbox user.