Exchange 2019 on Windows Server 2019 Core

Hallo zusammen,

Im letzten Blog Artikel, habe ich euch gezeigt, wie man Windows Server 2019 Core installiert. Nun werden wir auf dem Windows Server 2019 Core Exchange 2019 installieren.

Als erstes müssen die Prerequisits installiert werden.

Voraussetzungen für Exchange Server

https://docs.microsoft.com/de-de/exchange/plan-and-deploy/prerequisites?view=exchserver-2019

  • Visual C++ Redistibutable Package
  • Unified Communications Managed API 4.0
  • .NET Framework 4.7.2 (nicht notwendig auf Windows Server 2019 Core)

Ich kopiere mir die Daten von einem Share. Wobei mir folgende Variante auch noch gut gefällt.

 

New-Item c:\install -Type directory

$webClient = New-Object –TypeName System.Net.WebClient

$webClient.DownloadFile('https://download.microsoft.com/download/2/E/6/2E61CFA4-993B-4DD4-91DA-3737CD5CD6E3/vcredist_x64.exe','c:\Install\vcredist_x64.exe')

Get-ChildItem C:\install\vcredist_x64.exe

C:\install\vcredist_x64.exe

 

.\vcredist_x64.exe /install /quiet

Als nächstes Mounte ich das Exchange ISO und installiere die UCMA Komponenten von dort

Mount-DiskImage -ImagePath "E:\SW_DVD9_Exchange_Svr_2019_MultiLang_Std_Ent_.iso_MLF_X21-88195.ISO"

F:\UCMARedist\Setup.exe /q /norestart

So, nun ist die zusätzlichen Software installiert.

Nun müssen noch die Rollen und Features installiert werden. Für den Server Core muss folgendes in der PowerShell ausgeführt werden.

Install-WindowsFeature Server-Media-Foundation, NET-Framework-45-Features, RPC-over-HTTP-proxy, RSAT-Clustering, RSAT-Clustering-CmdInterface, 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-Metabase, Web-Mgmt-Service, Web-Net-Ext45, Web-Request-Monitor, Web-Server, Web-Stat-Compression, Web-Static-Content, Web-Windows-Auth, Web-WMI, RSAT-ADDS

Also zuerst noch einen Reboot machen

Danach klappt es dann

Nun kann das Exchange Setup gestartet werden. Leider funktioniert das über eine Remote PS Session (Enter-PSSession) nicht. Irgendwie fehlen mir dort wohl die Kerberos Tokens.

Aber ich kann mich ja per Remote Desktop auf den Server verbinden. Als erstes muss das Schema aktualisiert werden.

Setup.exe /IAcceptExchangeServerLicenseTerms /PrepareSchema

In der Domäne ist ein Exchange 2013 Server, welcher mit einer Hybrid Konfiguration mit Office 365 verbunden ist. Für den nächsten Schritt muss ich erstmal die Organization Konfiguration in ein XML Exportieren.

Get-OrganizationConfig | Export-Clixml -Path C:\Install\TenantOrganizationConfig.XML

Nun kann das PrepareAD mit dem XML durchgeführt werden.

Setup.exe /PrepareAD /TenantOrganizationConfig C:\Install\TenantOrganizationConfig.XML /IAcceptExchangeServerLicenseTerms

Nun kann Exchange installiert werden. Ich gebe beim installieren gleich die Parameter für de Mailbox DB mit.

Setup.exe /m:install /roles:m /MdbName:MDB01 /DbFilePath:"E:\MDB01\MDB01.edb" /LogFolderPath:"E:\MDB01" /IAcceptExchangeServerLicenseTerms /InstallWindowsComponents

Im Februar 2019 gab es ja das CU1 für Exchange 2019. Und so wird das installiert.

Kumulatives Update 1 für Exchange Server 2019

https://support.microsoft.com/de-ch/help/4471391/cumulative-update-1-for-exchange-server-2019

 

Setup.exe /IAcceptExchangeServerLicenseTerms /Mode:Upgrade

Wie immer im Lab ist etwas schief gelaufen und ich habe nochmals von vorne angefangen. Somit wurde auch gleich das Exchange 2019 Server Recovery durchgespielt. Funktioniert im Prinzip gleich wie Exchange 2016 RecoverServer.

  • Server neu aufgesetzt
  • Ursprünglichen Servernamen gesetzt und IP Adressen konfigurert
  • In die AD Domäne gejoined
  • Windows Updates installiert
  • Prerequisits installiert
    • VCRedist
    • UCMARedist aus dem Exchange ISO
  • Setup mit /RecoverServer

setup.exe /IAcceptExchangeServerlicenseTerms /Mode:RecoverServer

Danach kann man sich auf dem Exchange Admin Center (EAC) anmelden

Sieht aber ziemlich ähnlich wie Exchange 2013 / Exchange 2016 aus

In der Konsole kann man die Exchange Management Shell (EMS) mit folgendem Befehl starten.

Launchems

Nun schauen wir uns den Server mit dem HealthChecker an

.\HealthChecker.ps1

Die Power Settings werden auf "High Performance" gesetzt

powercfg /list

powercfg /setactive 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c

Nun wird die KeepAliveTime auf 1800 festgelegt 

Checklist for troubleshooting Outlook connectivity in Exchange 2013 and 2016 (on-premises)

https://blogs.technet.microsoft.com/exchange/2016/05/31/checklist-for-troubleshooting-outlook-connectivity-in-exchange-2013-and-2016-on-premises/

New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\" -Name "KeepAliveTime" -PropertyType DWORD –Force
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\" -Name "KeepAliveTime" -Value "0x1B7740"

Das Pagefile wird auf 25% vom RAM gesetzt

#Disable Auto Management of Pagefile

$sys = Get-WmiObject Win32_Computersystem –EnableAllPrivileges

$sys.AutomaticManagedPagefile = $false

$sys.put()

 

#Set Pagefile to 25% of Memory

$Pagefile = Get-WmiObject Win32_PagefileSetting | Where-Object {$_.name -eq “C:\pagefile.sys”}

$Pagefile.InitialSize = 6144

$Pagefile.MaximumSize = 6144

$Pagefile.put()

 

#Query Pagefile Settings

Get-WmiObject WIN32_Pagefile | Select-Object Name, InitialSize, MaximumSize, FileSize

Nun konfiguriere ich noch die TLS Settings vom Server und aktiviere die Best Practices

https://www.nartac.com/Products/IISCrypto/

.\IISCryptoCli.exe /backup iiscryptobackup.reg /template best

Nun schauen wir uns das ganze nochmals mit dem HealthChecker an. Sieht schon viel besser aus.

Weitere Informationen

Grüsse
Andres Bohren