Exchange Server 2016 migratie naar Exchange Server 2019 deel 1

Enige tijd geleden deden we een SBS 2011 Migratie naar Server 2016/2019 migratie. Daarbij moesten we tijdelijk genoegen nemen met Exchange Server 2016 vanwege de beperkingen in een overstap vanaf Exchange Server 2010. Nu gaan we de laatste stap uitvoeren en de mailboxen migreren vanaf Exchange Server 2016 naar Exchange Server 2019 op een nieuw in te richten server.

Zet een kale installatie van Windows Server 2019 neer. Hierop gaan we nu enkele voorbereidende installaties van features doen via Powershell.

Install-WindowsFeature Server-Media-Foundation
Install-WindowsFeature Server-Media-Foundation, NET-Framework-45-Features, RPC-over-HTTP-proxy, RSAT-Clustering, RSAT-Clustering-CmdInterface, RSAT-Clustering-Mgmt, RSAT-Clustering-PowerShell, 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

Download nu de Microsoft United Communications Managed API Core Runtime en installeer deze, net als de C++ Redistributable Packages for Visual Studio 2013 en .Net Framework 4.8.

Mount nu de Exchange Server 2019 ISO/DVD en breidt het Active Directory schema uit en daarna Active Directory zelf. Hiervoor is het noodzakelijk dat je Forest en Domain Functional Level Server 2012 R2 of hoger is.

setup.exe /PrepareSchema /IAcceptExchangeServerLicenseTerms
setup.exe /PrepareAD /IAcceptExchangeServerLicenseTerms

Klik met rechts op de setup.exe en kies voor “run as administrator”. Accepteer de voorwaarden, kies geen updates en vink aan dat je eventuele afhankelijkheden alsnog wil installeren. Kies vervolgens voor use recommended settings en ga verder.

Na enige tijd is je nieuwe Exchange Server 2019 in de lucht. Je kunt het ECP aanroepen op https://servernaam/ecp/?ExchClientVer=15.2

We starten nu de Exchange Powershell en passen de mailbox database naam aan. Deze is bij de installatie voorzien van een nietszeggende naam. We vragen deze naam eerst op, om hem daarna te hernoemen.

Get-MailboxDatabase

De naam die je terugkrijgt, gebruik je in de opvolgende opdracht.

Set-MailboxDatabase "Mailbox Database 0948580335" -Name "2019DB"

Omwille van de migratie schakelen we circularlogging van Exchange in.

Get-MailboxDatabase | Set-MailboxDatabase -CircularLoggingEnabled $true

Vervolgens dismounten en mounten we de database om circular logging daadwerkelijk te activeren.

Dismount-Database 2019DB
Mount-Database 2019DB

De volgende stap is het importeren van het certifcaat, waarna we ook de Service URL’s gaan aanpassen. Zorg dat je een export incl private keys achter de hand hebt en ga in het ECP naar Servers > Certificates. Hier kun je het bestaande certificaat importeren. Als je dat hebt gedaan dubbelklik je op het zojuist toegevoegde certificaat en ga je naar services. Selecteer de services SMTP, IMAP, POP en IIS en klik op save.

De service URL’s passen we aan via de Exchange Management Shell.

$Server = "exchange2019"
$HTTPS_FQDN = "mail.steijvers.com"
Set-ClientAccessService -Identity $Server -AutodiscoverServiceInternalURI https://$($HTTPS_FQDN)/Autodiscover/Autodiscover.xml
Get-OWAVirtualDirectory -Server $Server | Set-OWAVirtualDirectory -InternalURL "https://$($HTTPS_FQDN)/owa" -ExternalURL "https://$($HTTPS_FQDN)/owa"
Get-ECPVirtualDirectory -Server $Server | Set-ECPVirtualDirectory -InternalURL "https://$($HTTPS_FQDN)/ecp" -ExternalURL "https://$($HTTPS_FQDN)/ecp"
Get-OABVirtualDirectory -Server $Server | Set-OABVirtualDirectory -InternalURL "https://$($HTTPS_FQDN)/oab" -ExternalURL "https://$($HTTPS_FQDN)/oab"
Get-ActiveSyncVirtualDirectory -Server $Server | Set-ActiveSyncVirtualDirectory -InternalURL "https://$($HTTPS_FQDN)/Microsoft-Server-ActiveSync" -ExternalURL "https://$($HTTPS_FQDN)/Microsoft-Server-ActiveSync"
Get-WebServicesVirtualDirectory -Server $Server | Set-WebServicesVirtualDirectory -InternalURL "https://$($HTTPS_FQDN)/EWS/Exchange.asmx" -ExternalURL "https://$($HTTPS_FQDN)/EWS/Exchange.asmx"
Get-MapiVirtualDirectory -Server $Server | Set-MapiVirtualDirectory -InternalURL "https://$($HTTPS_FQDN)/mapi" -ExternalURL https://$($HTTPS_FQDN)/mapi

Ga nu terug naar het ECP en ga naar Servers en dubbelklik daar op je nieuwe server. Ga in de pop-up naar Outlook Anywhere en zet daar nog je FQDN neer.

Na al deze wijzigingen dient IIS een keer opnieuw gestart te worden, zodat deze alle wijzigingen opneemt.

iisreset /noforce

Via het ECP ga je naar “mail flow” > “receive connectors”. Hier maak je een nieuwe Frontend Transport connector aan. Deze dient als intern relay voor je scanners/multifunctionals en applicaties.

Eenmaal aangemaakt, stel je de security in zoals hieronder weergegeven. Vervolgens kun je bij Scoping de interne ip-adressen toevoegen welke straks van deze SMTPRelay gebruik moeten gaan maken.

Natuurlijk moeten we dan ook een Send-Connector aanmaken. Dat kan via ECP > Mail Flow > Send Connectors. Zet de “Cost” waarde hoger dan je bestaande Exchange 2016, zo blijft je huidige server in controle totdat we de daadwerkelijke migratie doen.

Pas nu de mailboxgrootte limieten aan op de nieuwe server:

Set-MailboxDatabase -Identity 2019DB -IssueWarningQuota 9GB -ProhibitSendQuota 10GB -ProhibitSendReceiveQuota 11GB -DeletedItemRetention "30:00:00" -MailboxRetention "30:00:00"

We zijn nu klaar met de voorbereidingen, we vervolgen de migratie in Exchange Server 2016 migratie naar Exchange Server 2019 deel 2.