準備使用 Exchange 管理命令介面的跨樹系移動信箱
Exchange Server 支援使用 Exchange 管理命令介面 New-MoveRequest 和 New-MigrationBatch Cmdlet 的信箱移動和移轉。 您也可以將 Exchange 系統管理中心的信箱移 (EAC) 。
在 Exchange 2016 中,您可以將 Exchange 2010、Exchange 2013 或 Exchange 2016 信箱從來源 Exchange 樹系移至目標 Exchange 2016 樹系。
在 Exchange 2019 中,您可以將 Exchange 2013、Exchange 2016 或 Exchange 2019 信箱從來源 Exchange 樹系移至目標 Exchange 2019 樹系。
若要執行 New-MoveRequest 與 New-MigrationBatch 指令程式,目標 Exchange 樹系中必須有郵件使用者,而且郵件使用者必須擁有最低的必要 Active Directory 屬性集。
本主題所述的範例 Exchange PowerShell 腳本支援這項工作,方法是將信箱使用者從 Exchange 來源樹系同步處理至 Exchange 目標樹系,作為郵件使用者, (也稱為啟用郵件功能的使用者) 。 腳本會將來源樹系中信箱使用者的 Active Directory 屬性複製到目標樹系,然後使用 Update-Recipient Cmdlet 將目標物件轉換成郵件使用者。
如需使用和撰寫文本的詳細資訊,請參閱 關於腳本。 如需準備跨樹系移動的詳細資訊,請參閱 準備跨樹系移動要求的信箱。
尋找與遠端移動要求相關的其他管理工作嗎? 請參閱管理內部部署信箱在 Exchange Server 中移動。
開始之前有哪些須知?
在 %ExchangeInstallPath%Scripts 中找出 Prepare-MoveRequest.ps1 腳本。 根據預設,%ExchangeInstallPath% 是 C:\Program Files\Microsoft\Exchange Server\V15\ (記下尾端的 '\') 。
若要執行此範例指令碼,您需要具備下列必要條件:
信箱目前位於) 的 Exchange 來源樹系 (。
針對 Exchange 2016 目標樹系,來源信箱可以位於 Exchange 2010、Exchange 2013 或 Exchange 2016 中。
針對 Exchange 2019 目標樹系,來源信箱可以在 Exchange 2013、Exchange 2016 或 Exchange 2019 中。
已安裝 Exchange 2016 或 Exchange 2019 的目標樹系 (,信箱會移至) 。
提示
有問題嗎? 在 Exchange 論壇中尋求協助。 此論壇的網址為:Exchange Server、Exchange Online 或 Exchange Online Protection。
使用 Prepare-MoveRequest.ps1 指令碼準備信箱的跨樹系移動
從目標 Exchange 2016 或 Exchange 2019 樹系中信箱伺服器上的 Exchange 管理命令介面執行腳本。 腳本會從來源樹系複製信箱屬性。
若要指派遠端樹系域控制器的特定驗證認證,您必須先執行 Windows PowerShell Get-Credential Cmdlet,並將使用者輸入儲存在暫存變數中。 當您執行 Get-Credential Cmdlet 時,Cmdlet 會要求在向遠端樹系域控制器驗證期間所使用的帳戶用戶名稱和密碼。 然後,您可以在 Prepare-MoveRequest.ps1 腳本中使用暫存變數。 如需 Get-Credential Cmdlet 的詳細資訊,請參閱 Get-Credential。
注意事項
呼叫此指令碼時,請確定對本機樹系和遠端樹系使用兩個單獨的認證。
執行下列命令以取得本機樹系和遠端樹系認證。
$LocalCredentials = Get-Credential
$RemoteCredentials = Get-Credential
執行下列命令,將認證資訊傳送到 Prepare-MoveRequest.ps1 指令碼中的 LocalForestCredential 與 RemoteForestCredential參數。
Prepare-MoveRequest.ps1 -Identity JohnSmith@Fabrikan.com -RemoteForestDomainController DC001.Fabrikam.com -RemoteForestCredential $RemoteCredentials -LocalForestDomainController DC001.Contoso.com -LocalForestCredential $LocalCredentials
腳本參數集
下表描述指令碼的參數集。
參數 | 必要 | 描述 |
---|---|---|
Identity | 必要項目 | Identity 參數可唯一識別來源樹系中的信箱。 身分識別可以是下列任何值:一般名稱 (CN) 、Alias、 proxyAddress 屬性、 objectGuid 屬性或 DisplayName 屬性 |
RemoteForestCredential | 必要項目 | RemoteForestCredential 參數會指定有權從來源樹系 Active Directory 複製數據的系統管理員。 |
RemoteForestDomainController | 必要項目 | RemoteForestDomainController 參數可指定信箱所在來源樹系中的網域控制站。 |
DisableEmailAddressPolicy | 選用 |
DisableEmailAddressPolicy 參數可指定在目標樹系中建立 MailUser 物件時,是否應停用可電子郵件地址原則 (EAP)。 如果指定此參數,則不會套用目標樹系中的 EAP。 注意:當您指定此參數時, MailUser 物件不會在本機樹系網域中加上戳記的電子郵件地址對應。 這通常會由EAP加上戳記。 |
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 參數會指定要在其中建立目標郵件用戶的組織單位 (OU) 。 |
UseLocalObject | 選用 | UseLocalObject 參數會指定如果腳本偵測到本機樹系中與要建立之郵件用戶衝突的物件,是否要將現有的本機物件轉換成必要的目標郵件使用者。 |
範例
本節包含如何使用 Prepare-MoveRequest.ps1 指令碼的數個範例。
範例:單一鏈接的郵件使用者
此範例會在遠端樹系與本機樹系之間有樹系信任時,在本機樹系中布建單一連結的郵件使用者。
執行下列命令以取得本機樹系和遠端樹系認證。
$LocalCredentials = Get-Credential
$RemoteCredentials = Get-Credential
執行下列命令,將認證資訊傳遞至 Prepare-MoveRequest.ps1 腳本中的 LocalForestCredential 和 RemoteForestCredential 參數。
Prepare-MoveRequest.ps1 -Identity JamesAlvord@Contoso.com -RemoteForestDomainController DC001.Fabrikam.com -RemoteForestCredential $RemoteCredentials -LocalForestDomainController DC001.Contoso.com -LocalForestCredential $LocalCredentials -LinkedMailUser
範例:管線
如果您提供信箱識別碼的清單,則此範例支援管線。
執行下列指令:
$UserCredentials = Get-Credential
執行下列命令,將認證資訊傳遞至 Prepare-MoveRequest.ps1 腳本中的 RemoteForestCredential 參數。
"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
執行下列命令,將認證資訊傳送到 Prepare-MoveRequest.ps1 指令碼中的 RemoteForestCredential 參數。
Import-Csv Test.csv | Prepare-MoveRequest.ps1 -RemoteForestDomainController DC001.Fabrikam.com -RemoteForestCredential $UserCredentials
依據目標物件的指令碼行為
本節描述目標物件出現數種情況時,指令碼如何執行。
存在重複的啟用郵件功能的目標物件
當文稿嘗試從來源信箱使用者建立目標郵件使用者,並偵測到重複的本機郵件啟用物件時,它會使用下列邏輯:
如果來源信箱使用者的 masterAccountSid 屬性等於任何目標物件的 objectSid 或 masterAccountSid 屬性,則:
如果目標物件未啟用郵件功能,腳本會傳回錯誤,因為腳本不支援將未啟用郵件功能的物件轉換為郵件使用者。
如果目標物件已啟用郵件功能,則該目標物件為重複物件。
如果來源信箱使用者的 proxyAddress 內容 (僅 smtp/x500) 中的位址等於目標物件的 proxyAddress 內容 (僅 smtp/x500) 中的位址,則該目標物件為重複物件。
指令碼將提示使用者存在重複的物件。
如果啟用郵件的目標對像是郵件使用者或郵件聯繫人,很可能是由跨樹系全域通訊清單 (GAL) 同步處理部署所建立,您可以使用 UseLocalObject 參數再次執行腳本,以使用啟用郵件的目標對象進行信箱移轉。
郵件使用者
如果目標物件是郵件使用者,文稿會將下列屬性從來源信箱使用者複製到目標郵件使用者:
msExchMailboxGUID
msExchArchiveGUID
msExchArchiveName
如果已設定 LinkedMailUser 參數,腳本會複製來源 物件Sid / masterAccountSid 屬性。
郵件連絡人
如果目標對像是郵件聯繫人,腳本會刪除現有的聯繫人,並將其所有屬性複製到新的郵件使用者。 文稿也會從來源信箱用戶複製下列屬性:
msExchMailboxGUID
msExchArchiveGUID
msExchArchiveName
sAMAccountName
userAccountControl (設為 514;相當於)
0x202, ACCOUNTDISABLE | NORMAL_ACCOUNT
userPrincipalName
如果已設定 LinkedMailUser 參數,腳本會複製來源 物件Sid / masterAccountSid 屬性。
LegacyExchangeDN 屬性
呼叫 Update-Recipient Cmdlet 以將目標物件轉換成郵件使用者時,會為目標郵件用戶產生新的 LegacyExchangeDN 屬性。 腳本會將目標郵件使用者的 LegacyExchangeDN 屬性以 x500 位址複製到來源信箱使用者的 proxyAddress 屬性。