17. March 2013 · Comments Off on Exchange 2007 to Office 365 mailbox migration: Autodiscover connects Outlook to the Exchange Server instead of O365 mailbox · Categories: Office365 · Tags: , , , ,


While migrating an Exchange 2007 (or 2010) mailbox into Office 365 (O365), autodiscover connects Outlook to the Exchange Server rather than connecting to the O365 mailbox.  Although you can’t connect via Outlook, Outlook Web Apps (OWA) and mobile devices might correctly connect to the O365 mailbox.


This issue occurs because you have an on-premise Exchange Server. Autodiscover for Outlook will always point to the on-premise environment.

When you install an Exchange 2007 or 2010 Client Access Server (CAS) role, a number of service-related configurations are applied. What is causing the issue is the service connection point (SCP). This is an Active Directory (AD) object that gets created on the server that the CAS role gets installed on. The SCP object contains the authoritative list of autodiscover service URLs for the forest. To see this list, you can run the following command in the Exchange Management Shell (EMS):


This will return the list of autodiscover service URLs that the SCP contains. In an Exchange 2003 to O365 migration, autodiscover does not exist so this issue should not occur. However, for 2007 and 2010, it’s a key component in both Outlook Anywhere and auto configuration of Outlook.

Normally, you would simply create a DNS CNAME record in your internal DNS server to point to ‘autodiscover.yourcompany.com’ to the given O365 server (‘autodiscover.outlook.com’). However, servers on the domain will query the AD regardless, and AD refers to the SCP for the autodiscovery service URL. The DNS record never gets looked at.


In order to fix this problem, you need to clear out the SCP list so that when it is queried by the AD, nothing is returned and AD moves on to the DNS, where it finds the CNAME pointing to the O365 autodiscover record. To do this, simply NULL the SCP list by running the following command:

Set-ClientAccessServer -Identity “CAS01” -AutoDiscoverServiceInternalUri $NULL

where ‘CAS01’ is the CAS server

Comments closed.