使用 PowerShell 來執行分段移轉至 Office 365

 

適用版本:Office 365

上次修改主題的時間:2016-12-21

摘要:了解如何使用 Windows PowerShell 來分段移轉至 Office 365。

您可以使用分段移轉,逐漸將使用者信箱的內容從來源電子郵件系統移轉到 Office 365。

本文會引導您使用 Exchange Online PowerShell 來進行分段電子郵件移轉的相關工作。將電子郵件分段移轉到 Office 365 所需注意的事項主題可讓您概略了解移轉程序。在熟悉該文章的內容後,請使用此主題來開始在不同電子郵件系統中移轉信箱。

註記注意事項:
您也可以使用 Exchange 系統管理中心來執行分段移轉。請參閱執行分段移轉,將電子郵件移轉到 Office 365

完成此工作的預估時間:2-5 分鐘來建立移轉批次。啟動移轉批次之後,移轉所需的時間會依批次中的信箱數目、每個信箱的大小和可用的網路容量而有所不同。如需關於信箱移轉至 Office 365 時所需時間受其他哪些因素影響的詳細資訊,請參閱移轉效能

您必須已獲指派的權限,才能執行此程序。若要查看您需要哪些權限,請參閱收件者權限主題中的「移轉」項目。

若要使用 Exchange Online PowerShell Cmdlet,您需要登入系統,並將 Cmdlet 匯入您的本機 Windows PowerShell 工作階段。請參閱使用遠端 PowerShell 連線到 Exchange Online 的指示。

若需要移轉命令的完整清單,請參閱移動與移轉 Cmdlet

使用分段移轉將信箱移轉至 Office 365 之前,您必須對 Exchange 環境進行一些變更。

在您的內部部署 Exchange Server 上設定Outlook 無所不在  電子郵件移轉服務會使用 Outlook 無所不在 (也稱為 RPC over HTTP) 來連線至您的內部部署 Exchange Server。如需如何針對 Exchange Server 2007 和 Exchange 2003 設定 Outlook 無所不在 的資訊,請參閱下列文章:

重要重要事項:
您必須在設定 Outlook 無所不在時使用信任的憑證授權單位 (CA) 所發行的憑證。您無法使用自我簽署憑證設定 Outlook 無所不在。如需詳細資訊,請參閱如何為 Outlook 無所不在設定 SSL

選擇性:確認可以使用 Outlook 無所不在連線至您的 Exchange 組織  嘗試使用下列其中一種方法來測試連線設定。

  • 從公司網路之外使用 Outlook 連線至您的內部部署 Exchange 信箱。

  • 使用 Microsoft Exchange Remote Connectivity Analyzer 來測試連線設定。使用 Outlook 無所不在 (RPC over HTTP) 或 Outlook 自動探索測試。

  • 在 Exchange Online PowerShell 中執行下列命令:

    $Credentials = Get-Credential
    
    Test-MigrationServerAvailability -ExchangeOutlookAnywhere -Autodiscover -EmailAddress <email address for on-premises administrator> -Credentials $credentials
    

設定權限  您用於連線至內部部署 Exchange 組織的內部部署使用者帳戶 (也稱為移轉系統管理員) 必須具有必要權限以便存取您要移轉至 Office 365 的內部部署信箱。當您在此程序稍後建立移轉端點以連線到電子郵件系統時,將會用到此使用者帳戶 (步驟 3:建立移轉端點)。

若要移轉信箱,系統管理員必須具備下列其中一組權限:

  • 屬於內部部署組織中 Active Directory 內的 Domain Admins 群組成員。

  • 獲得每個內部部署信箱的 FullAccess 權限,以及用來修改內部部署使用者帳戶的 TargetAddress 內容的 WriteProperty 權限。

  • 獲得儲存使用者信箱的內部部署信箱資料庫的 Receive As 權限,以及用來修改內部部署使用者帳戶的 TargetAddress 內容的 WriteProperty 權限。

如需如何設定這些權限的指示,請參閱指派可將信箱移轉至 Office 365 的權限

停用整合通訊 (UM)  如果您要移轉的內部部署信箱已開啟 UM,請先關閉 UM 再進行移轉。移轉完成後再開啟信箱的 UM。如需操作步驟,請參閱如何對使用者停用整合通訊

使用目錄同步處理在 Office 365 中建立新的使用者。您可以使用目錄同步處理在 Office 365 組織中建立所有內部部署使用者。

您必須授權已建立的使用者。您必須在建立使用者後的 30 天內增加授權。若要增加授權的步驟,請參閱步驟 8:完成移轉後工作

您可以使用 Microsoft Azure Active Directory 目錄同步作業工具或 Microsoft Azure Active Directory 同步服務 (AAD Sync),在 Office 365 中同步處理和建立內部部署使用者。將信箱移轉至 Office 365 之後,您需要管理內部部署組織中的使用者帳戶,這些帳戶會與您的 Office 365 組織進行同步處理。如需詳細資訊,請參閱目錄整合

找出要將內部部署信箱移轉至 Office 365 的使用者後,您可以使用逗號分隔值 (CSV) 檔案建立移轉批次。CSV 檔案 (可供 Office 365 用來執行移轉) 中的每一列都包含內部部署信箱的相關資訊。

註記注意事項:
使用分段移轉將信箱移轉至 Office 365 時,並無數目限制。移轉批次的 CSV 檔案最多可包含 2,000 列。若要移轉超過 2,000 個信箱,請建立其他 CSV 檔案並使用各個檔案建立新的移轉批次。

支援的屬性

分段移轉的 CSV 檔案支援下列三個屬性。CSV 檔案中的每一列都對應至一個信箱,而且必須包含這些屬性的值。

 

屬性 描述 Required?

EmailAddress

指定內部部署信箱的主要 SMTP 電子郵件地址,例如 pilarp@contoso.com。

使用內部部署信箱的主要 SMTP 位址,而非 Office 365 中的使用者識別碼。例如,如果內部部署網域名為 contoso.com,但 Office 365 電子郵件網域名為 service.contoso.com,您應在 CSV 檔案的電子郵件地址中使用 contoso.com 網域名稱。

必要

Password

要為新的 Office 365 信箱設定的密碼。Office 365 組織所套用的密碼限制也會套用到 CSV 檔案中包含的密碼。

選用

ForceChangePassword

指定使用者第一次登入新的 Office 365 信箱時,是否必須變更密碼。使用 TrueFalse 作為此參數的值。

註記注意事項:
如果您已在內部部署組織中部署 Active Directory Federation Services (AD FS) 或更新版本來實作單一登入 (SSO) 解決方案,則必須使用 False 作為 ForceChangePassword 屬性的值。

選用

CSV 檔案格式

以下是 CSV 檔案的格式範例:在此範例中,有三個內部部署信箱會移轉至 Office 365。

CSV 檔案的第一個資料列 (也稱為「標題列」) 會列出在後續幾列上指定的屬性或欄位名稱。每個屬性名稱都會以逗號分隔。

EmailAddress,Password,ForceChangePassword 
pilarp@contoso.com,Pa$$w0rd,False 
tobyn@contoso.com,Pa$$w0rd,False 
briant@contoso.com,Pa$$w0rd,False 

標頭列底下的每一個資料列都代表一個使用者,而且會提供移轉該使用者信箱所使用的詳細資訊。每一個資料列中屬性值的順序必須與標頭列中所列屬性名稱的順序相同。

使用任何文字編輯器或 Excel 之類的應用程式來建立 CSV 檔案。將檔案儲存為 .csv 或 .txt 檔。

註記注意事項:
如果 CSV 檔案包含非 ASCII 或特殊字元,請以 UTF-8 或其他 Unicode 編碼儲存該 CSV 檔案。依應用程式而定,當電腦的系統地區設定與 CSV 檔中所用的語言相符時,以 UTF-8 或其他 Unicode 編碼儲存 CSV 檔可能會比較容易。

若要順利移轉電子郵件,Office 365 必須與來源電子郵件系統連線和通訊。為了這麼做,Office 365 會使用移轉端點。若要使用 PowerShell 建立 Outlook 無所不在移轉端點以進行分段移轉,請先連線至 Exchange Online

若需要移轉命令的完整清單,請參閱移動與移轉 Cmdlet

若要在 Exchange Online PowerShell 中建立名為 "StagedEndpoint" 的 Outlook 無所不在移轉端點,請執行下列命令:

$Credentials = Get-Credential
New-MigrationEndpoint -ExchangeOutlookAnywhere -Name StagedEndpoint -Autodiscover -EmailAddress administrator@contoso.com -Credentials $Credentials

如需 New-MigrationEndpoint Cmdlet 的詳細資訊,請參閱 New-MigrationEndpoint

註記注意事項:
藉由使用 –TargetDatabase 選項,可以使用 New-MigrationEndpoint Cmdlet 來指定要使用之服務的資料庫。否則系統會從管理信箱所在的 Active Directory Federation Services (AD FS) 2.0 網站隨機指派資料庫。

在 Exchange Online PowerShell 中執行下列命令來顯示 "StagedEndpoint" 移轉端點的資訊:

Get-MigrationEndpoint StagedEndpoint | Format-List EndpointType,ExchangeServer,UseAutoDiscover,Max*

您可以在 Exchange Online PowerShell 中使用 New-MigrationBatch Cmdlet,為完全移轉建立移轉批次。您可以建立移轉批次,並加上 AutoStart 參數來自動啟動它。或者,您也可以先建立移轉批次,以後再手動使用 Start-MigrationBatch Cmdlet 啟動它。本範例會建立名為 "StagedBatch1" 的移轉批次,並使用上一個步驟中建立的移轉端點。

New-MigrationBatch -Name StagedBatch1 -SourceEndpoint StagedEndpoint -AutoStart

本範例也會建立名為 "StagedBatch1" 的移轉批次,並使用上一個步驟中建立的移轉端點。因為其中並未加上 AutoStart 參數,所以需要在移轉儀表板上或使用 Start-MigrationBatch Cmdlet 來手動啟動此移轉批次。如前所述,一次只能有一個完全移轉批次。

New-MigrationBatch -Name StagedBatch1 -SourceEndpoint StagedEndpoint

在 Exchange Online PowerShell 中執行下列命令來顯示 "StagedBatch1" 的資訊:

Get-MigrationBatch -Identity StagedBatch1 | Format-List

您也可以執行下列命令來確認批次已啟動:

Get-MigrationBatch -Identity StagedBatch1 | Format-List Status

如需 Get-MigrationBatch Cmdlet 的詳細資訊,請參閱 Get-MigrationBatch

成功移轉信箱批次之後,您必須有方法能讓使用者存取他們的郵件。信箱已移轉的使用者現在有兩個信箱,一個在內部部署,另一個在 Office 365。在 Office 365 中擁有信箱的使用者,他們的內部部署信箱將不會再接收新郵件。

因為移轉作業尚未完成,所以您還沒有準備好將所有使用者導向 Office 365 來存取他們的電子郵件。所以該如何處理同時擁有兩個信箱的使用者?您可以變更已移轉至「啟用郵件功能的使用者」的內部部署信箱。當您將信箱變更為擁有郵件功能的使用者時,您可以將使用者導向 Office 365 來存取其電子郵件,而不是從他們的內部部署信箱存取。

將內部部署信箱轉換成擁有郵件功能的使用者的另一個重要原因,是要藉由將 Proxy 位址複製到擁有郵件功能的使用者,以從 Office 365 信箱保留 Proxy 位址。如此可讓您使用 Active Directory 從內部部署組織管理雲端使用者。如果您決定在所有信箱移轉至 Office 365 後解除委任內部部署 Exchange Server 組織,則複製到擁有郵件功能的使用者的 Proxy 位址,將會保留在您的內部部署 Active Directory 中。

如需詳細資訊以及下載將信箱轉換至擁有郵件功能的使用者時須執行的指令碼,請參閱下列網頁:

將移轉批次中的所有信箱順利移轉,並將批次中的內部部署信箱轉換成擁有郵件功能的使用者後,就可以刪除分段移轉批次。請務必確認在移轉批次中,郵件會轉寄至 Office 365 信箱。當您刪除分段移轉批次時,移轉服務會清除與該移轉批次相關的所有記錄,並刪除該移轉批次。

若要刪除 Exchange Online PowerShell 中的 "StagedBatch1" 移轉批次,請執行下列命令。

Remove-MigrationBatch -Identity StagedBatch1

如需 Remove-MigrationBatch Cmdlet 的詳細資訊,請參閱 Remove-MigrationBatch

在 Exchange Online PowerShell 中執行下列命令來顯示 "IMAPBatch1" 的資訊:

Get-MigrationBatch StagedBatch1

此命令會傳回狀態為 Removing 的移轉批次,或傳回錯誤,指出找不到移轉批次而需確認該批次是否已刪除。

如需 Get-MigrationBatch Cmdlet 的詳細資訊,請參閱 Get-MigrationBatch

藉由指派授權,為移轉的帳戶啟動 Office 365 使用者帳戶。如果您未指派授權,則當寬限期 (30 天) 結束時就會停用信箱。若要在 Office 365 系統管理中心 中指派授權,請參閱指派或解除指派商務用 Office 365 的授權

  • 建立自動探索 DNS 記錄,讓使用者可以輕鬆存取信箱。將所有內部部署信箱移轉至 Office 365 後,您可以為 Office 365 組織設定自動探索 DNS 記錄,讓使用者能夠以 Outlook 和行動用戶端輕鬆連線至新的 Office 365 信箱。這個新的自動探索 DNS 記錄必須使用和您的 Office 365 組織所用相同的命名空間。舉例來說,如果您的雲端架構命名空間是 cloud.contoso.com,則您需要建立的自動探索 DNS 記錄是 autodiscover.cloud.contoso.com。

    Office 365 會使用 CNAME 記錄來實作 Outlook 和行動用戶端的自動探索服務。自動探索 CNAME 記錄必須包含下列資訊:

    • 別名:自動探索

    • 目標:autodiscover.outlook.com

    如需詳細資訊,請參閱管理 DNS 記錄時為 Office 365 建立 DNS 記錄

  • 解除委任內部部署 Exchange 伺服器。確認所有電子郵件會直接路由傳送到 Office 365 信箱後,如果不再需要維護內部部署電子郵件組織,或沒打算實作 SSO 解決方案,您可以從伺服器解除安裝 Exchange,並移除內部部署 Exchange 組織。

    如需相關資訊,請參閱下列各主題:

 
顯示: