CPUU and Outlook 2016

With the arrival of Outlook 2016 and Migration Manager adding its support starting with CPUU 5.6, it now has some additional parameters which I wanted to cover in this article.

The new in processing Outlook 2016 is that CPUU now fully relies on Autodiscover when connecting to Source and Target mailboxes. This may work OK if Source and target Email namespaces are different, however if Email namespace / Primary SMTP address is preserved during migration then Autodiscover cannot at the same time point to Source and Target and needs to somehow distinguish them during CPUU updating. And it’s exactly for this reason the following new CPUU.INI parameters / command switches were added (examples will follow):

-ExcludeScpLookupNever – CPUU switch. If added to CPUU command line, it disables CPUU behavior to add “ExcludeSCPLookup” registry key to Outlook configuration during Outlook 2016 mail profile processing. Without this -ExcludeScpLookupNever option every time CPUU encounters Outlook 2016, it will add “ExcludeSCPLookup” registry key and subsequently ignore Active Directory SCP during Autodiscover resolution process.

AutodiscoverSrcFile / AutodiscoverTrgFile INI parameters contain path (can be UNC or local, reachable from the point of view of user’s workstation) to the corresponding Source and Target Autodiscover XMLs. Note that these XMLs will not just be called once during CPUU updating – they will continue to be used by Outlook on the regular basis even after.

AutodiscoverDomainsFQDNs INI parameter needs to contain all possible user’s SMTP namespaces from the source and target Exchange environments (basically Accepted Domains / ones utilized by migrated user’s mailboxes), like for example Source1.com Source2.com Target1.com Target2.com separated by space . These namespaces will then be used by CPUU to add corresponding registry keys to Outlook configuration instructing it to utilize specific XML Autodiscover files for these namespaces. So whenever Outlook for example encounters Source1.com namespace in the user’s Primary SMTP address, it will use the corresponding Source (or Target) XML prepared for this purpose.

-AlwaysUseAutodiscoverFiles CPUU switch instructs the tool to also utilize the above INI parameters for other Outlook versions besides just Outlook 2016. Without this switch, CPUU relies on AutodiscoverSrcFile / AutodiscoverTrgFile / AutodiscoverDomainsFQDNs options only during Outlook 2016 processing and ignores them for all other Outlook versions.

It’s important to understand that when this “AutodiscoverSrcFile / AutodiscoverTrgFile / AutodiscoverDomainsFQDNs” logic is engaged, every time CPUU runs it will create standard MS documented Outlook registry keys to force local XML based Outlook Autodiscover for all namespaces specified in AutodiscoverDomainsFQDNs:

  1. CPUU fails – all namespaces will point to XML specified by AutodiscoverSrcFile option via registry
  2. CPUU succeeds – all namespaces will point to XML specified by AutodiscoverTrgFile option via registry

This will stick even after CPUU is finished updating user’s Outlook profile. Now every time Outlook starts, it will be accessing these XMLs specified by AutodiscoverSrcFile / AutodiscoverTrgFile INI parameters so these XMLs need to be always available and therefore UNC path may not be a perfect solution although it will work. Ideally these XMLs need to be copied to the user’s machine as part of the CPUU wrapper script.

EXAMPLES:

[Parameters]
AutodiscoverSrcFile=\\domain.local\NETLOGON\CPUU\AutodiscoverSource.xml
AutodiscoverTrgFile=\\domain.local\NETLOGON\CPUU\AutodiscoverTarget.xml
AutodiscoverDomainsFQDNs=Source1.com Source2.com Target1.com Target2.com

Here is how registry looks after CPUU failed updating Outlook on particular computer – local XML is now enforced every time Outlook starts for this user (as it’s part of HKCU branch):