Exchange 2010 to Exchange 2016 Migration – Part 5

Exchange 2010 to Exchange 2016 Migration

Introduction

In this blog series of Exchange 2010 to Exchange 2016 migration, we have worked on Exchange 2010 to 2016 migration planning, installed Exchange 2016 server and in previous article of this blog series, we have performed post installation tasks of Exchange 2016 Server and moved our mail flow and HTTPS traffic to Exchange 2016 server. In this part of the series we will move users mailboxes from Exchange 2010 to Exchange 2016.

We will not be working on decommissioning Exchange 2010 server and we do not have any public folder on Exchange 2010 that requires migration to Exchange 2016 server.

Migration of Mailbox to Exchange 2016 Server

Perform the following steps to migrate mailboxes from Exchange 2010 to Exchange 2016 server.

  • Login to Exchange Administrative Center with admin credentials
  • Navigate to Recipients > Migration
  • Click on icon and move to a different database

  • Under Select the users that you want to move, click Add Add Icon icon to add users or you can upload list of mailboxes using a CSV file

  • In the Select Mailbox window, select the mailboxes you want to move, and then click Add Icon icon to add and then OK.

  • Specify a name for the new mailbox move, Make sure you have selected the option to move both primary and archive mailbox. In case you do not have a archive mailbox you can skip that option.
  • Under Target database, click Browse and select the target database of Exchange 2016 Server.

  • Select the option to automatically start the migration batch to start the batch immediately. You can also unchecked the option and manually start the batch later on.
  • Plan for mailbox migration completion, you can select the option to automatically complete the migration batch. During the finalization phase, the mailbox will be unavailable for a small period of time. If you choose to manually complete the mailbox move, you can decide when the move is finalized and you can plan for batch completion in after hours to avoid end user interruption.

Once the migration is completed, the end user will receive a pop up message that states “Administrator has made a change that requires you to restart outlook client”. Once user restart the outlook client he will be connected with his mailbox on Exchange Server 2016.

Conclusion

In part 5 of this blog series of Exchange 2010 to Exchange 2016 migration, we have performed user mailbox migration to Exchange 2016 database to complete our migration to Exchange Server 2016. Once all mailboxes have been migrated to Exchange 2016 server, you can plan for Exchange Server 2010 decommissioning to remove from your messaging infrastructure.

If you would like to read the other parts of this blog article series, please go to:

Exchange 2010 to Exchange 2016 Migration – Part 4

Exchange 2010 to Exchange 2016 Migration

Introduction

In this blog series of Exchange 2010 to Exchange 2016 migration, we have worked on Exchange 2010 to 2016 migration planning, installed Exchange 2016 server and in previous article of this blog series, we started to work on Exchange 2016 server post installation configuration. We configured the virtual directories, SSL certificate and renamed the default mailbox database. In this part of the series we will configure mail flow and web based traffic configuration to point to Exchange 2016 server and update the records accordingly.

Moving the mail flow and web based traffic from Exchange 2010 server to Exchange 2016 server requires a maintenance window and should be planned for after hours

Switch Mail Flow and HTTPS traffic to Exchange 2016 Server

Once you have performed the installation and initial configuration of Exchange 2016 server. The next step is to plan for advanced configuration of Exchange 2016 server that requires you to create new mailbox database, set up application relay connector etc.

I do not have any application relay configured on Exchange 2010 and we are not going to setup any receive connector on Exchange 2016 for application relay.

You can download a complete step by step guide for Exchange 2016 server installation from TechNet Gallery that talks about Exchange 2010 database move from one drive to another, creating/renaming a database, setting up connector etc.

Modify Send Connector to include Exchange 2016 Server

Once you setup the receive connector based on your needs for application relay, next step is to modify the existing send connector to add your Exchange 2016 server as authorized server to send external emails. To add Exchange 2016 server to outbound connector, perform the following steps.

  • Login to Exchange admin center and navigate to Mail Flow > Send Connector
  • Select the existing Connector and click on edit 
  • Click on Scoping and add Exchange 2016 server to the authorized list of outbound servers

Once the exchange 2016 server is added to the list, monitor the mail flow and send test emails from a mailbox hosted on Exchange 2016 mailbox to internet and verify the mail flow is working fine from Exchange 2016 server.

Update Internal DNS Records to Point to Exchange 2016 Server

Once the mail flow is tested and verified, next step is to update the internal DNS records to point to Exchange 2016 server. As of now, your current records will be pointing to your Exchange 2010 server. Update the records to point to Exchange 2016 server for web traffic and mail flow.

  • To update the records, login to DNS server and start the DNS snap-in
  • Select the Mail and Autodiscover record and click on modify

Exchange 2010 to Exchange 2016 Migration

  • Update the record to point to Exchange 2016 server

Exchange 2010 to Exchange 2016 Migration

Once records are updated, wait for DNS cached records to be expired before performing a testing. Once the DNS is updated on end user side, login to Exchange 2010 mailbox using the URL https://mail.domain.com/owa and verify the OWA redirection and mail flow. Once internal access is verified and everything is working fine as expected, update the external HTTPS publishing which in my case is being done via NAT rule configured on router. We’ve updated the NAT rule to send the traffic to Exchange 2016 server instead of Exchange 2010 server.

Conclusion

In part four of this blog series, we have performed reviewed the advanced configuration options required for Exchange 2016 server post-installation and move the mail flow and web based traffic to Exchange 2016 server. In part five of this series, we will complete the prepare a migration batch and start migrating the test mailboxes and production mailboxes to Exchange server 2016.

If you would like to read the other parts of this blog article series, please go to:

Exchange 2010 to Exchange 2016 Migration – Part 3

Exchange 2010 to Exchange 2016 Migration

Introduction

In the first two parts of this blog series we have performed the basic design and implementation of Exchange 2016 Server in a coexistence with Exchange 2010 server. In this part of the blog series, we will perform the post-configuration steps for our exchange 2016 server installation. We will also validate the Exchange server 2016 installation and perform few tests before we start the production mailbox migration to Exchange 2016 server in part 4.

Before you start post-installation configuration, it’s always a good idea to get yourself familiar with Exchange Admin Center in Exchange 2016 Server. 

Exchange 2016 Post-Installation Configuration

Exchange 2016 server post-installation configuration requires you to perform the following steps.

  • Update the service connection point for autodiscover
  • Import Exchange SSL certificate on Exchange Server 2016
  • Configure virtual directories in Exchange 2016 Server
  • Configure Outlook Anywhere

Before we start the configuration changes, let’s verify that our Exchange 2016 server is being added to Exchange organization. To validate the exchange installation, run the Exchange Management Shell on Exchange 2016 server and run the following cmdlet.

Get-ExchangeServer | ft Name, AdminDisplayVersion -Autosize

Exchange 2010 to Exchange 2016 Migration

Once you have verified the installation of Exchange 2016 server, next step is to rename Exchange 2016 default database.

Update the service connection point for autodiscover

After you have successfully installed and verified the Exchange 2016 Server, the next step in post-installation configuration task is to update the Service Connection Point (SCP).

SCP is registered in Active Directory. Whenever a client access server is installed, a new service connection point is created for that server. SCP object is used by domain-joined machines to find their mailbox on the Exchange Server.

By default, the SCP will be in the form https://ServerFQDN /Autodiscover/Autodiscover.xml; for example https://EXCH2k16.msexperttalk.com/Autodiscover/Autodiscover.xml. This name isn’t recommended because we do not want to have hostname on our SSL certificate. This can cause SSL certificate mismatch error messages being popped up on end users domain-joined machine.

To change the service connection point on Exchange 2016 server, run the following cmdlet in Exchange Management Shell.

Set-ClientAccessService -Identity EXCH2k16 -AutodiscoverServiceInternalURI   “https://autodiscover.msexperttalk.com/Autodiscover/Autodiscover.xml”

Exchange 2010 to Exchange 2016 Migration

Import Exchange SSL certificate on Exchange 2016 Server

Once you setup the SCP, next step is to import the SSL certificate on Exchange 2016 Server. You have to export the SSL certificate on Exchange 2010 server first. To do the SSL installation, perform the following steps.

  • Login to Exchange 2010 Server and launch EMC
  • Navigate to Server Configuration > select the server > select public SSL certificate

Exchange 2010 to Exchange 2016 Migration

  • Click on “Export Exchange Certificate” under actions pane

Exchange 2010 to Exchange 2016 Migration

  • In Export Exchange Certificate wizard, select a location to save the Personal Information Exchange (PFX) file and set an appropriate strong password, then click on Export

Exchange 2010 to Exchange 2016 Migration Exchange 2010 to Exchange 2016 Migration

  • Copy the exported certificate to Exchange 2016 server.
  • Launch Exchange Admin Center and navigate to Servers > Certificates and click on … icon and click on “Import Exchange Certificate

Exchange 2010 to Exchange 2016 Migration

  • During the Import Exchange Certificate wizard we’re required to provide a full UNC path to the location of the exported PFX file along with the correct password

Exchange 2010 to Exchange 2016 Migration

  • Add Exchange 2016 Server to apply the certificate and click Finish.

Exchange 2010 to Exchange 2016 Migration

  • Once the SSL certificate is imported successfully on Exchange 2016 server, the next step is to assign services to the certificate.
  • Select the SSL certificate and click on edit icon

Exchange 2010 to Exchange 2016 Migration

  • Click on services and select “SMTP and IIS” to assign the services. Click on override the default SMTP certificate

Exchange 2010 to Exchange 2016 Migration Exchange 2010 to Exchange 2016 Migration

  • Once the certificate is assigned, restart the IIS service by running the following cmdlet

iisreset /noforce

Configure virtual directories in Exchange 2016 Server

You can configure the virtual directories from Exchange Admin center or use the following powershell script to update all virtual directories at once.

$Server = “ServerName”

 

$URL = “mail.domain.com”

 

Get-OWAVirtualDirectory -Server $Server | Set-OWAVirtualDirectory -InternalURL “https://$($URL)/owa” -ExternalURL   “https://$($URL)/owa”

 

Get-ECPVirtualDirectory -Server $Server | Set-ECPVirtualDirectory -InternalURL “https://$($URL)/ecp” -ExternalURL   “https://$($URL)/ecp”

 

Get-OABVirtualDirectory -Server $Server | Set-OABVirtualDirectory -InternalURL “https://$($URL)/oab” -ExternalURL   “https://$($URL)/oab”

 

Get-ActiveSyncVirtualDirectory -Server $Server | Set-ActiveSyncVirtualDirectory -InternalURL “https://$($URL)/Microsoft-Server-ActiveSync” -ExternalURL “https://$($URL)/Microsoft-Server-ActiveSync”

 

Get-WebServicesVirtualDirectory -Server $Server | Set-WebServicesVirtualDirectory -InternalURL “https://$($URL)/EWS/Exchange.asmx” -ExternalURL “https://$($URL)/EWS/Exchange.asmx”

 

Get-MapiVirtualDirectory -Server $Server | Set-MapiVirtualDirectory -InternalURL “https://$($URL)/mapi” -ExternalURL https://$($URL)/mapi

Exchange 2010 to Exchange 2016 Migration

Configure Outlook Anywhere

After updating the Virtual Directories for Exchange 2016 Server, we also need to update the HTTPS name and authentication method for Outlook Anywhere in Exchange Server 2016.

By default outlook anywhere protocol is being used by outlook clients to communicate with Exchange Server 2016. It’s important that these settings are correct even if you are not publishing Outlook Anywhere externally.

During co-existence with Exchange 2010 Server it’s important to ensure that the default Authentication Method Negotiate is updated to NTLM to ensure client compatibility when Exchange 2016 proxies Outlook Anywhere connections to the Exchange 2010 server.

To update these values, perform the following steps.

  • Launch Exchange Admin Center and Navigate to Servers > Servers. Select Exchange 2016 Server and click on edit

Exchange 2010 to Exchange 2016 Migration

  • Set the internal and external URL to mail.msexperttalk.com and change the authentication to NTLM. Make sure that you have selected the option for SSL offloading.

Conclusion

In part three of this blog series, we have performed the basic configuration required for Exchange 2016 server post-installation. In part four we will complete the pending post-installation configuration tasks and begin mailbox migration preparation.

If you would like to read the other parts of this blog article series, please go to:

EXCHANGE 2010 TO EXCHANGE 2016 MIGRATION – PART 2

Exchange 2010 to Exchange 2016 Migration

Introduction

In Part 1 of this blog series, we talked about planning of Exchange 2010 server upgrade to Exchange 2016 Server. In this blog series, we are going to deploy Exchange 2016 Server in coexistence with Exchange 2010 Server in same active directory site. As we do not need a legacy namespace for Exchange 2016 Server by design, I am going to use the same namespace that we are using on Exchange Server 2010 i.e. mail.msexperttalk.com. Exchange 2010 to Exchange 2016 migration – part 2 blog post is focused on completing the pre-requisites for Exchange 2016 server and deploying your first Exchange 2016 production Server in coexistence with Exchange 2010 Server.

I highly recommend to use Microsoft Exchange sizing calculator to calculate the hardware requirements of Exchange 2016 Server. Latest version of Exchange sizing calculator can be downloaded from TechNet Gallery.

Preparing for Exchange 2016 Server Installation

Exchange 2016 server installation can be done using GUI or command line. In this blog article, we will install Exchange 2016 server using a command line interface. For step by step instructions of installing and configuring Exchange 2016, you can download ebook from TechNet Gallery. To install the Exchange 2016 server pre-requisites, run the following powershell cmdlet on windows server 2012 R2 machine where you’re planning to install Exchange server 2016.

Install-WindowsFeature RSAT-ADDS

EXCHANGE 2010 TO EXCHANGE 2016 MIGRATION – PART 2

Once the RSAT-ADDS feature is installed, run the following cmdlet to install other required pre-requisites for Exchange server 2016. This process requires a system reboot.

Install-WindowsFeature AS-HTTP-Activation, Server-Media-Foundation, NET-Framework-45-Features, RPC-over-HTTP-proxy, RSAT-Clustering, RSAT-Clustering-CmdInterface, RSAT-Clustering-Mgmt, RSAT-Clustering-PowerShell, Web-Mgmt-Console, WAS-Process-Model, Web-Asp-Net45, Web-Basic-Auth, Web-Client-Auth, Web-Digest-Auth, Web-Dir-Browsing, Web-Dyn-Compression, Web-Http-Errors, Web-Http-Logging, Web-Http-Redirect, Web-Http-Tracing, Web-ISAPI-Ext, Web-ISAPI-Filter, Web-Lgcy-Mgmt-Console, Web-Metabase, Web-Mgmt-Console, Web-Mgmt-Service, Web-Net-Ext45, Web-Request-Monitor, Web-Server, Web-Stat-Compression, Web-Static-Content, Web-Windows-Auth, Web-WMI, Windows-Identity-Foundation, RSAT-ADDS

EXCHANGE 2010 TO EXCHANGE 2016 MIGRATION – PART 2

Once the server is rebooted, Install .Net Framework 4.5.2 and Microsoft Unified Communications Managed API Core Runtime, version 4.0. If you have all the latest updates installed on windows server 2012 R2, you will get a message that .Net framework 4.5.2 or higher version is already installed. Proceed with the installation on Microsoft Unified Communications Managed API Core runtime version 4.0.

EXCHANGE 2010 TO EXCHANGE 2016 MIGRATION – PART 2 EXCHANGE 2010 TO EXCHANGE 2016 MIGRATION – PART 2 EXCHANGE 2010 TO EXCHANGE 2016 MIGRATION – PART 2

Next step is to prepare your active directory forest for Exchange server 2016 installation. Active Directory preparation requires to extend the AD schema for Exchange 2016 server and prepare AD domain where you would like to deploy Exchange 2016 server. Once you extend the AD with Exchange 2016 Server attributes, you cannot install Exchange 2013 server in your messaging organization. If you plan to install Exchange 2013 Server later on, then first extend the AD with Exchange 2013 server and then extend the for Exchange 2016 server.

The process of extending the AD schema is irreversible and it’s highly recommended to perform a full backup of active directory before extending the schema.

To extend the AD schema for Exchange Server 2016, perform the following steps.

  • Login to Exchange server 2016 server with an admin account that is a member of Enterprise Admin and Schema Admin group.
  • Launch the command prompt with elevated rights and change the directory to Exchange server 2016 where you have extracted the setup files.
  • Run the following cmdlet to extend the AD schema

.\Setup /PrepareSchema /IAcceptExchangeServerLicenseTerms

EXCHANGE 2010 TO EXCHANGE 2016 MIGRATION – PART 2

  • Once the Active Directory schema is extended for Exchange Server 2016, next step is to prepare the domain in active directory forest where you need to install your Exchange Server 2016. To prepare the AD domain, run the following cmdlet

.\Setup /PrepareAD /IAcceptExchangeServerLicenseTerms

EXCHANGE 2010 TO EXCHANGE 2016 MIGRATION – PART 2

  • After preparing the AD, the last step for exchange pre-requisites is to prepare the domain for Exchange 2016 installation. To prepare a domain, run the following cmdlet

.\Setup /PrepareDomain /IAcceptExchangeServerLicenseTerms

EXCHANGE 2010 TO EXCHANGE 2016 MIGRATION – PART 2

We are now ready to install the first exchange server 2016 server in our exchange organization.

Installing Exchange Server 2016

After preparing the pre-requisites for Exchange Server 2016, next step is to install the exchange server 2016. To install Exchange server 2016 using powershell, run the following cmdlet in elevated window.

.\setup /Mode:Install /Roles:Mailbox /IAcceptExchangeServerLicenseTerms

After the successful installation of Exchange 2016 server. Reboot the server.

Conclusion

In Part 2 of this blog series, we have successfully completed the pre-requisites installation for Exchange Server 2016. We have also installed our first Exchange server 2016 in Exchange server 2010 organization. In Part 3 of this series, we will perform the post installation tasks.

If you would like to read the other parts of this blog article series please go to:

Exchange 2016 error “A valid migration mailbox could not be found for this organization”

Introduction

Microsoft Exchange Server system mailboxes are also known as “Arbitration” mailbox. Exchange Server use these arbitration mailboxes for various tasks like eDiscovery Search Metadata, Admin audit logs, OAB, Mailbox Migration, UM data like menus, dial plan etc. These mailboxes are automatically created when you setup first exchange server and the process of preparing Active Directory creates these accounts in root domain of your active directory during the process of AD preparation. These mailboxes can be seen via Exchange Management Shell by running the following EMS cmdlet.

C:\>Get-Mailbox –Arbitration

Below are the arbitration mailboxes created by Exchange Server during the installation with a disable AD account in root active directory under users OU.

  • SystemMailbox{1f05a927-eac1-46e7-9a47-611e1a81bb50}
  • SystemMailbox{e0dc1c29-89c3-4034-b678-e6c29d823ed9}
  • SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}
  • Migration.8f3e7716-2011-43e4-96b1-aba62d229136

Today I have been working on Exchange Server 2010 to Exchange Server 2016 upgrade and got the following error message with a user mailbox migration batch.

Exchange 2016 error "A valid migration mailbox could not be found for this organization"

Microsoft has the solution documented in the KB article 2812509. The reason for error is that the migration mailbox is either not enabled or was deleted. When you use the New-MigrationBatch cmdlet, the Migration mailbox must exist and be enabled or else you won’t be able to migrate the mailboxes.

Although the migration arbitration mailbox is created upon initial installation of your Exchange server 2016, this account can be corrupted or being deleted by mistake. You can easily re-create this account by running the following EMS cmdlets.

How to Fix It?

  • Firstly step is to ensure that the account Migration.8f3e7716-2011-43e4-96b1-aba62d229136 does not exist

Get-Mailbox -Arbitration | fl name, alias

  • Prepare your active directory by running the following cmdlet in Windows PowerShell

.\Setup /PrepareAD /IAcceptExchangeServerLicenseTerms

Exchange 2016 error "A valid migration mailbox could not be found for this organization"

  • Once the AD preparation is completed, Verify that the account exist under default Users OU in root active directory
  • Enable the Arbitration mailbox used for migration

Enable-Mailbox -Arbitration -Identity “Migration.8f3e7716-2011-43e4-96b1-aba62d229136”

Exchange 2016 error "A valid migration mailbox could not be found for this organization"

  • Configure the migration arbitration mailbox as below

Set-Mailbox “Migration.8f3e7716-2011-43e4-96b1-aba62d229136” -Arbitration –Management:$true

Exchange 2016 error "A valid migration mailbox could not be found for this organization"Once the arbitration mailbox is enabled and configured properly, Create the migration batch to migrate user mailboxes from one database to another.

For more information on Exchange 2016, please go through the following blog posts.

 

1 2 3 5