1 2 3 4 |
<a href="https://marcoschiavon.net/migrate-from-exchange-2010-13-to-exchange-2016---part-one/"><a href="https://marcoschiavon.net/migrate-from-exchange-2010-13-to-exchange-2016---part-one/">Migrate from Exchange 2013 to Exchange 2016 - Part one</a> <a href="https://marcoschiavon.net/migrate-from-exchange-2010-13-to-exchange-2016---part-two/">Migrate from Exchange 2013 to Exchange 2016 - Part two</a> <a href="https://marcoschiavon.net/migrate-from-exchange-2010-13-to-exchange-2016---part-three/">Migrate from Exchange 2013 to Exchange 2016 - Part three</a> <a href="https://marcoschiavon.net/migrate-from-exchange-2010-13-to-exchange-2016-part-four/">Migrate from Exchange 2013 to Exchange 2016 - Part four</a></a> |
At this point we have :
- one Exchange server 2013
- one Exchange server 2016
- all the virtual directory and mailboxes are still on the 2013.
Now we have to :
- move all the mailbox from the Exchange 2013 to Exchange 2016
- switch the A internal and external records and the move the mailbox.
- decommissioning the old Exchange 2013.
Before proceed, to understand better our situation, we can rename the Exchange servers DB to reflect better who they are..
So this is our situation :
Get-Mailbox -Arbitration | FL Name,DisplayName,ServerName,Database,AdminDisplayVersion
![](https://marcoschiavon.net/wp-content/uploads/2020/09/Screenshot-2020-09-15-at-11.52.20-1024x106.jpg)
Now I rename both DBs to reflect Exchange2013DB and Exchange2016DB
Set-MailboxDatabase “Mailbox Database 1985575706” -Name “EXCH-2013”
Set-MailboxDatabase “Mailbox Database 1018107093” -Name “EXCH-2016”
![](https://marcoschiavon.net/wp-content/uploads/2020/09/Screenshot-2020-09-15-at-11.56.07-1024x151.jpg)
1 – move all the mailbox from the Exchange 2013.
Before moving all the mailboxes, this is our situations:
Get-Mailbox -Database “EXCH-2013”
![](https://marcoschiavon.net/wp-content/uploads/2020/09/Screenshot-2020-09-15-at-12.14.02-1024x140.jpg)
Get-Mailbox -Database “EXCH-2016”
![](https://marcoschiavon.net/wp-content/uploads/2020/09/Screenshot-2020-09-15-at-12.14.22-1024x85.jpg)
let’s go!, move all mailboxes form EXCH-2013 to EXCH-2016
Get-Mailbox -Database “EXCH-2013” -ResultSize Unlimited | New-MoveRequest -TargetDatabase “EXCH-2016”
![](https://marcoschiavon.net/wp-content/uploads/2020/09/Screenshot-2020-09-15-at-12.16.20-1024x196.jpg)
Check the state:
Get-MoveRequestStatistics -MoveRequestQueue “exch-2016”
![](https://marcoschiavon.net/wp-content/uploads/2020/09/Screenshot-2020-09-15-at-12.17.18-1024x189.jpg)
now we are here :
![](https://marcoschiavon.net/wp-content/uploads/2020/09/Screenshot-2020-09-15-at-13.24.30-1024x240.jpg)
get the status :
Get-MoveRequestStatistics -MoveRequestQueue “exch-2016”
![](https://marcoschiavon.net/wp-content/uploads/2020/09/Screenshot-2020-09-15-at-13.30.47-1024x233.jpg)
Ok, at this point we need to clear the move request with this command:
Get-MoveRequest | where {$_.status -eq “Completed”} | Remove-MoveRequest
Now, we need to move from Exchange 2013 to 2016 the Arbitriation mailboxes
These are the Arbitration on Exchange 2013:
Get-Mailbox -Database “Exch-2013” -Arbitration |fl servername,name
![](https://marcoschiavon.net/wp-content/uploads/2020/09/Screenshot-2020-09-15-at-14.29.42-1024x247.jpg)
And these on 2016:
![](https://marcoschiavon.net/wp-content/uploads/2020/09/Screenshot-2020-09-15-at-14.30.14-1024x160.jpg)
move them with this command:
Get-Mailbox -Database “exch-2013” -Arbitration | New-MoveRequest -TargetDatabase “exch-2016”
![](https://marcoschiavon.net/wp-content/uploads/2020/09/Screenshot-2020-09-15-at-14.31.47-1024x167.jpg)
Check the status of the migration job
Get-MoveRequestStatistics -MoveRequestQueue “exch-2016” |fl Displayname,status
![](https://marcoschiavon.net/wp-content/uploads/2020/09/Screenshot-2020-09-15-at-14.34.39-1024x321.jpg)
Now we need to clear the move request and check the Arbitration mailboxes on the Exchange 2016
![](https://marcoschiavon.net/wp-content/uploads/2020/09/Screenshot-2020-09-15-at-14.36.55-1024x357.jpg)
It’s done.
At this point, we need add the Exchage 2016 as sender server, and modify the split-brain dns.
Edit your send connector
![](https://marcoschiavon.net/wp-content/uploads/2020/09/Screenshot_2020-09-15_at_14_43_11-1024x444.jpg)
add the exchange 2016 and remove 2013.
![](https://marcoschiavon.net/wp-content/uploads/2020/09/Screenshot_2020-09-15_at_14_44_49-1024x895.jpg)
![](https://marcoschiavon.net/wp-content/uploads/2020/09/Screenshot-2020-09-15-at-14.46.10-1024x315.jpg)
Now we need to Export and import the “Receive Connectors”
To get the situation on the old server run this:
Get-ReceiveConnector | Select-Object Identity,AuthMechanism,PermissionGroups,Bindings,RemoteIPRanges | Sort-object Identity
![](https://marcoschiavon.net/wp-content/uploads/2020/09/Screenshot_2020-09-27_at_12_14_33-985x1024.jpg)
To export and import the connectors, I use the ps1 script “Copy-ReceiveConnector.ps1” created by Michel de Rooij https://gallery.technet.microsoft.com/Copying-Receive-Connector-c7c107db
First, Export the connector from the Exchange 2013 :
Set-ExecutionPolicy unrestricted
.\Copy-ReceiveConnector.ps1 SRVEXCH13 -ExportTo .\srvexch13_rec_conn.xml
![](https://marcoschiavon.net/wp-content/uploads/2020/09/Screenshot-2020-09-27-at-12.19.18-1024x274.jpg)
At this point, we have to import the connectors to the Exchange 2016 .
I’ll do an import with the “clear” command to clear the connectors before import.
![](https://marcoschiavon.net/wp-content/uploads/2020/09/Screenshot_2020-09-27_at_12_21_51-1024x331.jpg)
Now re-run the command to show the connectors
Get-ReceiveConnector | Select-Object Identity,AuthMechanism,PermissionGroups,Bindings,RemoteIPRanges | Sort-object Identity
![](https://marcoschiavon.net/wp-content/uploads/2020/09/Screenshot_2020-09-27_at_12_24_27-1024x286.jpg)
Now, we need to change the internal DNS record to point to the exchange 2016 ip .
We can lower the TTL to permit a more quick procedure..
![](https://marcoschiavon.net/wp-content/uploads/2020/09/Screenshot-2020-09-15-at-14.50.09-1024x711.jpg)
I changed to 0.8 that is out Exchange 2016
![](https://marcoschiavon.net/wp-content/uploads/2020/09/Screenshot-2020-09-15-at-14.51.34-1024x208.jpg)
As you can see , our client resolve the mail.labincloudres.com with .0.8 and the Exchange 2013 is proxying the request to 2016 (where there are the mailboxes).
Current situation :
![](https://marcoschiavon.net/wp-content/uploads/2020/09/Screenshot_2020-09-15_at_14_53_42-1024x616.jpg)
Now , after i flushed the dns cache, we are connected to Exchange 2016
![](https://marcoschiavon.net/wp-content/uploads/2020/09/Screenshot_2020-09-15_at_15_00_00-1024x616.jpg)
Now we are almost done..
In the next guide i’ll go to decommission the Exchange 2013.