logo exchange

Exchange 2019 Unattended Setup

Een verse exchange installatie op een nieuwe server omgeving kun je in een paar stappen uitvoeren.

Voorzie eerst je server van enkele afhandelijkheden, dat scheelt gezeur achteraf. Begin met een elevated powershell sessie:

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

Herstart de server waarna je overgaat tot het installeren van het volgende:
Microsoft United Communications Managed API Core Runtime , C++ Redistributable Packages for Visual Studio 2013 en de IIS URL Rewrite module

Vervolgens download je de laatste Exchange Server 2019, deze is in ISO formaat, en mount je deze allereerst op je domain controller. Ga naar de schijfletter waarop de ISO gemount is en maak je verse Active Directory gereed en breidt het schema uit:

.\Setup.exe /PrepareSchema /IAcceptExchangeServerLicenseTerms_DiagnosticDataON 
.\Setup.exe /PrepareAD /IAcceptExchangeServerLicenseTerms_DiagnosticDataON /OrganizationName:"First Organization"

Vervolgens mount je de ISO aan je voorgenomen Exchange Server en installeer je via powershell Exchange Server 2019 in een Mailbox rol, waarbij we deze op de standaardlocatie C:\Program Files\Microsoft\Exchange Server\V15\ neerzetten. Voor de mailbox database kiezen we een alternatief pad: E:\Exchange\DB2022A\. Vergeet niet om eventuele openstaande MMC vensters en Server Manager af te sluiten…

New-Item -ItemType Directory -Path E:\Exchange\DB2022A\EDB -Force
New-Item -ItemType Directory -Path E:\Exchange\DB2022A\LOGS -Force
.\Setup.exe /mode:install /roles:mailbox /IAcceptExchangeServerLicenseTerms_DiagnosticDataON /InstallWindowsComponents /OrganizationName:"First Organization" `
    /TargetDir:"C:\Program Files\Microsoft\Exchange Server\V15\" `
    /MdbName:DB2022A `
    /LogFolderPath:"E:\Exchange\DB2022A\LOGS" `
    /DBFilePath:"E:\Exchange\DB2022A\EDB\DB2022A.EDB"

Natuurlijk kan er ook iets mis gaan. Dan dient een setup.exe /mode:recoverserver plaats te vinden:

.\Setup.exe /mode:recoverserver /IAcceptExchangeServerLicenseTerms_DiagnosticDataON

Een andere melding die je kunt krijgen is dat er geen sendconnector is aangemaakt. Dit kan gebeuren wanneer er in je omgeving nog geen exchange server aanwezig is. Setup can’t detect a Send connector with an address space of ‘*’. Mail flow to the Internet may not work properly. Dit kunnen we later via Exchange Management Shell aanpakken:

New-SendConnector -Name "Internet Email" -Usage "Internet" -SourceTransportServers "MS01" -DNSRoutingEnabled $True -AddressSpaces ("SMTP:*;5") -IsScopedConnector $False -UseExternalDNSServersEnabled $false

Verder vind ik het prettig om een tweede mailbox database aan te maken. Stel dat je ooit tegen mailbox corrupte aanloopt, migreer je de mailbox naar de andere database zodat waarmee je de boel weer recht kunt trekken. Vanuit de Exchange Management Shell voer je het volgende uit:

New-Item -ItemType Directory -Path E:\Exchange\DB2022B\EDB -Force
New-Item -ItemType Directory -Path E:\Exchange\DB2022B\LOGS -Force
New-MailboxDatabase -Name "DB2022B" -Server MS01 -EdbFilePath "E:\Exchange\DB2022B\EDB\DB2022B.EDB" -LogFolderPath "E:\Exchange\DB2022B\LOGS"

Installeer of importeer een certificaat, koppel dit certificaat via het ECP (servers> certificaten, selecteer de juiste server indien je er meerdere hebt) aan de services IIS, POP, SMTP en stel vervolgens een FQDN in voor alle virtual directories:

$Server = "MS01"
$HTTPS_FQDN = "mail.steijvers.net"
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

Indien dit de eerste Exchange server binnen je omgevingis, zul je bij een bezoek aan het ECP, https://ipadres/ecp, zul je opmerken dat dit niet werkt. Hiervoor zul je een eerste mailbox moeten aanmaken.

Enable-Mailbox -identity basadmin -Database DB2022B

Activeer nu nog je Exchange Server door de licentie in te voeren.

Set-ExchangeServer MS01 -ProductKey S0M3L-iC3N3-KEYYO-USHOU-LDHAV

Draai nu het HealthChecker.ps1 script dat je op Github kunt vinden. Daarin staan aanwijzingen om Download Domains in te stellen en Exchange Extended protection. Deze zaken zul je op een gloednieuwe Exchange Server 2019 installatie handmatig moeten uitvoeren.