Ondemand Migration for Email

Updating Outlook Profiles - OnDemand Migrator with CPUU


 When using ODME to migrate from an Exchange platform to an OnPrem Exchange or Office 365, the CPUU utility can be used to update Outlook profiles so that users can seamlessly connect to the new target mailbox without manual intervention. 

CPUU is a multi-purpose utility used with Quest Migration Manager for Exchange and ODME. Much of the feature set and documentation is tailored to Migration Manager. Note that Migration Mgr provides a full Active Directory sync, the permissions and the other features (Rules, junk mail settings etc) are not available when CPUU is used with ODME. It is important to note when CPUU is used with ODME, that ONLY the following are updated.

Supported CPUU Features

  • Switch Outlook profiles from the source to the target Exchange server (Existing Offline folders (OST files) are not preserved)
  • Update Send/Receive Settings



This is a basic walk-thru of updating an Outlook client mailbox with OnDemand Migrator and CPUU

Basic steps.

  1. Setup source & target service accounts. (Script required to set permissions in Office 365 target)
  2. Download/configure CPUU
  3. Migrate Mailbox/ Set option to Update Profile.
  4. Run CPUU on client
  5. Verify results.



Set Exchange permissions.

Create a service account in the source Domain with Exchange admin rights. Service account must have receive as rights.

Set Permissions in Office 365.

Create a Global administrator service account in Office 365.

Download and install MS Azure PowerShell Commandlets and MSOnline Assistant.



Configure script:

# Grant Full Control and Disable Calender Repair Agent Script

param ($loginO365 = "migadmin1@tenant.onmicrosoft.com", `
$passwordO365 = "Password", `
$importUsersFile = ".\Inputfile.csv", `
$SVCQMMEAdmin="migadmin1@tenant.onmicrosoft.com", `
$resultsFile = ".\Results.csv", `
$logFile = ".\Activity.log"

function ConnectO365Session($creds)
$opt = New-PSSessionOption -ProxyAccessType IEConfig -ProxyAuthentication Basic -IdleTimeout 120000
$s = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri 'ps.outlook.com/powershell' -AllowRedirection `
-Authentication Basic -Credential $creds -SessionOption $opt -ErrorAction Stop
Import-PSSession $s -AllowClobber -Prefix "O365" | Out-Null

return $s

function Get-Creds()
$pwd = ConvertTo-SecureString -Force -AsPlainText -String $passwordO365
$creds = New-Object System.Management.Automation.PSCredential($loginO365, $pwd)

return $creds

function Write-ErrorLog([string] $logMessage, $color="Red")
Write-Log $logMessage $color "Error"

function Write-Log([string] $logMessage, $color="Green", $msgType = "Info")




Modify the script to use your accounts; credentials and Office 365 tenant.

param  ($loginO365 = "migadmin1@tenant.onmicrosoft.com",  `

        $passwordO365 = "Password",  `

        $importUsersFile = ".\Inputfile.csv",  `

        $SVCQMMEAdmin="migadmin1@tenant.onmicrosoft.com",  `


Populate the inputfile.csv with email addresses of the user/mailboxes in scope in office 365.

Save modified script with .ps1 extension. Run script from azure PowerShell session.




Installing and configuring CPUU

Install CPUU on a file share accessible to the clients requiring the update. Run configuration utility. Accept the defaults with the following exception. On the credentials tab, set the option to use the following credentials. Source account must have Exchange admin rights (receive as), target needs full control permissions in Office 365. (See script). 



Accept the defaults for all other pages. Create Update; roll-back; & cleanup bat files. Setup a login script or map client to network share where CPUU is installed.

Follow existing documentation for using ODME. When ready to switch the end user, you must initiate the update from the options tab in ODME. Choosing options, be sure to set the “Enable Outlook Profile Update” on the Outlook Profile Tab.



Start the Migration



View log, verify switch message was created.



Run the cpuu_update.bat to switch the client.

 Note that you can add this to a login script. If the switch message is not found, the utility will exit and make no modifications. The update will only occur once ODME has completed the switch operation (above).



Verify results.

Each time cpuu runs, it will create a log. Check the log for errors. Review Outlook client to verify the profile was updated to connect to the OnPrem Exchange or Office 365 mailbox.


  • Hi,
    this is clear but what is the configuration when you are migrating using the same mail domain on the source and on the target?
  • Exactly the same. There is one "Radio" button that is different in start of the CPUU configuration. Additionally "Prompt for credentials" is now the recommended method for CPUU.
  • Hi Jeff, thanks for your quick reply. I'm referring to the additional settings needed so CPUU can reconfigure the Outlook Profile. I mean the -AlwaysUseAutodiscoverFiles switch in the CPUU_Update.bat file, the AutodiscoverSrcFile and AutodiscoverTrgFile paramenters in the CPUU.ini file, etc. Also you need to create XML files for autodiscover, but all of these settings are not well documented. I'm making some tests in a Exchange 2013 to Office 365 migration scenario and i have some trouble with CPUU. Also since we're using ODME, is it possible to have the configuration working without manually converting the source mailbox to a mail user after the migration?
  • is it possible to have the configuration working without manually converting the source mailbox to a mail user after the migration? Yes

    Use the -AlwaysUseAutodiscoverFiles switch. It will forces Outlook to use the AutodiscovexxxFile.xml files instead of relying on DNS, SCP, ect. See support.quest.com/.../232266

    To create the needed AutodiscoverxxxFile.xml, see
  • Hi Loreman,

    Thanks for posting in the On Demand Migration for Email (ODME) community forums. The following KB article provides additional details about performing an Office 365 tenant to tenant migration with ODME and using Client Profile Updating Utility (CPUU) to update end-user Outlook profiles: