Based on the TN instructions for moving EOP between organizations, this script aims to help break it into various modes and functions (import and export all settings, DNS, domain confirmation), simplify the process, as well as give an operational order.  This script supports both the legacy standalone EOP as well as the Office 365 Exchange Online Protection SKU, as well as configuring IRM for Azure AD/ExchangeOnline.

Updates:

Previous updates:

Updated to correct some typos on import and detect the names of transport rules that might fail import if AADRM is not enabled/configured. Learn more about the tool and parameters at https://www.undocumented-features.com/2017/01/23/migrating-eop-settings-between-tenants/.

PowerShell
Edit|Remove
<# 
.SYNOPSIS 
Migrate EOP settings from one tenant to another. 
 
.PARAMETER AADRM 
Enable Azure AD Rights Management for tenant. Valid parameters: 
- GCC - US Government Community Cloud 
- NA - North America 
- EU - European Union 
- AP - Asia / Pacific 
- SA - South America 
 
.PARAMETER EOP 
Identifies source environment as EOP (different target endpoint) 
 
.PARAMETER SourceTenantCredential 
Standard PSCredential object for connecting to source environment. 
 
.PARAMETER TargetTenantCredential 
Standard PSCredential object for connecting to target environment. 
 
.PARAMETER Mode 
Modes available: 
- Export (Exports all settings and domains) 
- ExportDomains (Exports only domains from source tenant) 
- ImportDomains (Imports only domains from source tenant) 
- ConfirmDomains (confirms domains in target tenant) 
- Import (Imports all settings except domains) 
- ImportTransportRulesOnly (Imports transport rules; useful for re-running if initial import failed) 
 
.NOTES 
When migrating EOP and transport settings between domains, perform these activities in order: 
- Export (source tenant) 
- ImportDomains (target tenant) 
- Add DNS verification records to external DNS 
- Delete objects from source tenant 
- Remove domains from source tenant 
- ConfirmDomains (target tenant) 
- Import (target tenant) 
 
.EXAMPLE 
.\Migrate-EOPSettings.ps1 -Mode Export -SourceTenantCredential (Get-Credential) -EOP 
Export all settings from standalone EOP tenant using souce credentials specified on command-line. 
 
.EXAMPLE 
.\Migrate-EOPSettings.ps1 -Mode ExportDomains 
Export domains from source tenant. 
 
.NOTES 
Author: Aaron Guilmette (aaron.guilmette@microsoft.com) 
Based on TN functions and process from https://technet.microsoft.com/en-us/library/dn801047%28v=exchg.150%29.aspx 
 
- 2018-04-24 - Update to Malware filter policy 
             - Added switch parameter UseExistingSession 
             - Added ImportMalwareSettingsOnly mode 
- 2017-01-23 - Initial relase 
 
.LINK 
https://gallery.technet.microsoft.com/Migrate-EOP-Settings-9d480325 
#>