In this example we need to move the SCP and OutlookAnywhere from name from autodiscover.bears.local to autodiscover.a6n.co.uk
Exchange has many components that make up the e-mail service, these are shown below, this guide will be focusing on the ones in bold, the other ones will not be updated with this guide, if you have a requirement for these services to be updated please see the end of the guide - the section updated "out of scope components"
AutoDiscover https://autodiscover.a6n.co.uk/Autodiscover/Autodiscover.xml
Exchange Control Panel https://grr-exch.bear.local/ecp
Exchange Web Services https://grr-exch.bear.local/EWS/Exchange.asmx
Exchange ActiveSync https://grr-exch.bear.local/Microsoft-Server-ActiveSync
Offline Address Book https://grr-exch.bear.local/OAB
Outlook Web App https://grr-exch.bear.local/owa
MAPI over HTTP https://grr-exch.bear.local/mapi
Outlook Anywhere grr-exch.bear.local
WARNING : This is SSL traffic so ensure you have the new name in the certificate before you issue these commands, failure to complete this step will means Outlook will give you certificate errors and that is not a nice user experience.
First you need to update the Autodiscover URL from the old entry to the new entry, so to get the current entries you need this command:
Get-ClientAccessService | FL Fqdn,AutoDiscoverServiceInternalUri
This will return the results you require:
Fqdn : Grr-EX1.bears.localAutoDiscoverServiceInternalUri : https://autodiscover.bears.local/Autodiscover/Autodiscover.xml
Fqdn : Grr-EX2.bears.local
AutoDiscoverServiceInternalUri : https://autodiscover.bears.local/Autodiscover/Autodiscover.xml
You can update the new SCP in one PowerShell command, which is nice and convenient, ensure you check for spelling errors or syntax issues:
Get-ClientAccessServer | Set-ClientAccessServer -AutoDiscoverServiceInternalUri "https://autodiscover.a6n.co.uk/autodiscover/autodiscover.xml" -AutoDiscoverSiteScope "FluffyCloud"
If you need to switch back to "old" SCP then its best to get that ready so if you need it you can rollback quickly:
Get-ClientAccessServer | Set-ClientAccessServer -AutoDiscoverServiceInternalUri "https://autodiscover.bears.local/Autodiscover/Autodiscover.xml" -AutoDiscoverSiteScope "FluffyCloud"
Once this is complete, your Outlook will still be connecting the old OutlookAnywhere name so now its time to update that as well, this will take longer to replicate around the domain, so its not immediate, first check what is set:
Get-OutlookAnywhere | fl ServerName,InternalHostname
ServerName : Grr-EX1.bears.local
InternalHostname : autodiscover.bears.local
ServerName : Grr-EX2.bears.local
InternalHostname : autodiscover.bears.local
Here, the old name is autodiscover.bears.local and we need to switch to new OutlookAnywhere on autodiscover.a6n.co.uk, for this you need to do each servers individually as this one will impact your Outlook connections:
Get-OutlookAnywhere -Server Grr-EX1.bears.local | Set-OutlookAnywhere -InternalHostname autodiscover.a6n.co.uk
That failed as I was told that that -InternalClientsRequireSSL needs to specified as well, well that is simple here it is $True so lets add that to the command:
Get-OutlookAnywhere -Server Grr-EX1.bears.local | Set-OutlookAnywhere -InternalHostname autodiscover.a6n.co.uk -InternalClientsRequireSSL $True
Get-OutlookAnywhere -Server Grr-EX1.bears.local | Set-OutlookAnywhere -InternalHostname autodiscover.a6n.co.uk -InternalClientsRequireSSL $True
Its also wise to have the failback to the old OutlookAnywhere ready, just in-case you need it:
Get-OutlookAnywhere -Server Grr-EX1.bears.local | Set-OutlookAnywhere -InternalHostname autodiscover.bears.local
Get-OutlookAnywhere -Server Grr-EX1.bears.local | Set-OutlookAnywhere -InternalHostname autodiscover.bears.local
Replace <servername> with your server name, the <new-external-url> with the new external URL as per the top of this guide for the path and then <new-internal-url>
Get-EcpVirtualDirectory -Server <servername> | Set-EcpVirtualDirectory -ExternalUrl <new-external-url> -InternalUrl <new-internal-url>
Get-EcpVirtualDirectory -Server <servername> | Format-List InternalUrl, ExternalUrl
Get-WebServicesVirtualDirectory -Server <servername> | Set-WebServicesVirtualDirectory -ExternalUrl <new-external-url> -InternalUrl <new-internal-url>
Get-WebServicesVirtualDirectory -Server <servername> | Format-List InternalUrl, ExternalUrl
Get-MapiVirtualDirectory -Server <servername> | Set-MapiVirtualDirectory -ExternalUrl <new-external-url> -InternalUrl <new-internal-url>
Get-MapiVirtualDirectory -Server <servername> | Format-List InternalUrl, ExternalUrl
Get-ActiveSyncVirtualDirectory -Server <servername> | Set-ActiveSyncVirtualDirectory -ExternalUrl <new-external-url> -InternalUrl <new-internal-url>
Get-ActiveSyncVirtualDirectory -Server <servername> | Format-List InternalUrl, ExternalUrl
Get-OabVirtualDirectory -Server <servername> | Format-List InternalUrl, ExternalUrl
Get-OwaVirtualDirectory -Server <servername> | Format-List InternalUrl, ExternalUrl
Powershell