Nachdem ich hier schon die Installation von Exchange 2019 auf Server 2019 mit grafischer Oberfläche beschrieben hatte, folgt nun auch die empfohlene Installation auf Windows Server 2019 Core. Die Installation von Exchange 2019 auf Server Core ist schneller erledigt, als auf einem Server mit grafischer Oberfläche, ist Exchange erst einmal installierst, muss man sich so gut wie gar nicht umgewöhnen. Die Exchange Management Shell steht auch auf einem Server Core zur Verfügung. Das Exchange Admin Center kann von einem beliebigen Rechner aufgerufen werden. Wer Exchange auf Server Core installiert und trotzdem nicht auf eine GUI verzichten will, sollte sich das Windows Admin Center anschauen.
Umgebung
Die Umgebung ist wieder denkbar einfach. Es gibt nur einen Domain Controller und eine VM mit Windows Server 2019 Core:
Beide Server wurden als VMs installiert. Die Konfiguration von LABEX2 (Windows Server 2019 Core) ist im folgenden beschrieben.
Vorbereitung Server 2019 Core
Server 2019 Core verfügt über keine GUI und auch die meisten Tools zur Verwaltung (MMC, Servermanager, Explorer, etc) sind nicht enthalten. Kurz um: Nahezu alles was mit der Maus bedient wird, fehlt. Es gibt aber für die grundlegenden Einstellungen wie Hostname, Netzwerk und Updates ein kleines textbasiertes Tool mit dem Namen “sconfig”. Anstatt der GUI also ein TUI (Text User Interface ):
Ich finde es etwas altbacken, dass auch Server 2019 Core nach der Anmeldung erst einmal die alte CMD startet und nicht direkt in die PowerShell wechselt. Sconfig erfüllt aber seinen Zweck: Computername, RDP, Windows Updates, Netzwerk, Domain usw lässt sich in wenigen Schritten konfigurieren:
Ich habe an dieser Stelle nur die Einstellungen vorgenommen:
- Computername
- Beitritt zum Active Directory
- Remote Desktop aktiviert
- statische IP vergeben
- Windows Updates
- Telemetrie… (kein Kommentar…)
All diese Einstellungen lassen sich natürlich auch via PowerShell vornehmen und dadurch automatisieren.
Nachdem die grundlegenden Einstellungen vorgenommen wurden, müssen ein paar Voraussetzungen geschaffen werden.
Exchange Voraussetzungen installieren
Wie jede andere Exchange Version auch, benötigt auch Exchange 2019 auf Server Core ein paar Voraussetzungen. Die lassen sich am schnellsten via PowerShell installieren. Dazu kann direkt aus der CMD die PowerShell ausgerufen werden:
Damit später die UCMA installiert und ggf. das ActiveDirectory Schema manuell aktualisiert werden kann, sind zunächst nur zwei Windows Features erforderlich. Diese können mit dem folgenden Befehl installiert werden:
Install-WindowsFeature Server-Media-Foundation, RSAT-ADDS
Eine weitere Exchange Voraussetzung ist Visual C++ 2013 Runtime. Wer diese bisher direkt per Browser auf dem Server runtergeladen und installiert hat, muss nun auf den Browser verzichten. Aber auch per Powershell lässt sich schnell ein Verzeichnis für den Download anlegen und die Datei runterladen, dazu kann beispielweise das folgende kleine Script verwendet werden:
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
Das Script dient nur als Beispiel, auch hier lässt sich die Installation wunderbar automatisieren.
Als Nächstes muss die UCMA 4.0 installiert werden. Bei der Exchange Installation auf Server Core, sollte hier unbedingt die UCMA 4 installiert werden, welche mit dem Exchange ISO mitgeliefert wird. Da ich in meiner Umgebung das ISO direkt als virtuelles Laufwerk der VM gemountet habe, kann ich direkt zu dem Laufwerk wechseln und UCMA installieren:
d: cd .\UCMARedist\ .\Setup.exe
Hinweis: Wenn das Exchange ISO auf den Server kopiert wurde, lässt sich das ISO auf auf dem Server mounten. Das Mounten von ISO erfolgt mit folgendem Befehl:
Mount-DiskImage c:\Install\ExchangeServer2019-x64_RTM.iso
Das waren auch schon alle Voraussetzungen für die Exchange Installation. Der Rest der erforderlichen Windows Features kann direkt mit dem Exchange Setup installiert werden, dies funktioniert mittlerweile absolut stabil.
An dieser Stelle sollte der Server noch einmal neu gestartet werden, bevor dann mit dem Exchange Setup begonnen wird.
Exchange 2019 installieren
Nach dem Neustart kann Exchange installiert werden, für diese Testumgebung habe ich den folgenden Befehl verwendet:
.\Setup.exe /m:install /roles:mb /IAcceptExchangeServerLicenseTerms /InstallWindowsComponents /OrganizationName:FrankysWebLab
Hinweis: Wenn das ISO auf dem Server gemountet wurde, dann muss es auch nach dem Neustart des Servers noch einmal erneut gemountet werden.
Der Parameter /OrganizationName ist optional und legt nur den Exchange Organisationsnamen fest, wird der Parameter weggelassen, heißt die erste Exchange Organisation “First Exchange Organisation”. Der Parameter sollte nur bei neuen Exchange Installationen angegeben werden in denen es keine früheren Versionen von Exchange Server gibt.
Es gibt noch einige weitere Paramater die direkt beim Setup übergeben werden können. Es lässt sich beispielsweise das Installationsverzeichnis oder Name und Pfad der Datenbank angeben. Eine Liste der Parameter kann mit dem folgenden Befehl ausgegeben werden:
.\Setup.exe /help:Install
Nachdem Exchange installiert wurde, lässt sich mittels EMS die Basiskonfiguration durchführen. Die Exchange Management Shell lässt sich mit dem folgenden Befehl starten (aus CMD sowie PowerShell):
Das Exchange Admin Center lässt sich von einen anderen Rechner unter folgenden Link aufrufen:
- https://ExchangeServerIP/ecp
Schade das das nicht auf Windows Server 2016 Core / Standard ohne GUI läuft.
Ja ich habe den Titel gelesen, Ja ich weis das es sich um 2019 Core handelt.
Laut Microsofts Artikel soll es in einer Ähnlichen weise aber auch auf 2016 funktionieren : https://techcommunity.microsoft.com/t5/exchange-team-blog/deploy-exchange-server-2019-on-windows-server-core/ba-p/608269 , vielleicht gab es ein update o.ä. was das verhindert.
Zwar etwas spät, aber besser als nie.
.Net-Installationen auf einem Server Core brechen so gut wie immer ab oder produzieren Fehlermeldungen.
Warum? Weil der Installer gern eine UI hätte, die ein Core nicht hat. Soweit alles richtig erkannt.
Bevor man jedoch anfängt einen nicht unterstützten Weg einzuschlagen, einfach mal den Installer gescheit starten ;-)
c:\temp\ndp48-x86-x64-allos-enu.exe /q
Der wichtige Teil ist „/q“ für quite mode. Es gibt gar kein Fenster, nichtmal eine Rückmeldung ob es erfolgreich war. Im Taskmgr sieht man jedoch den Installer laufen. Mit ein bisschen Powershell lässt sich danach auch die Version abfragen (ein vorheriger reboot ist nicht verkehrt):
PS C:\> gci ‚HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP‘ -recurse | gp -name Version -EA 0 | where { $_.PSChildName -match ‚^(?!S)\p{L}‘} | select PSChildName, Version
Das Exchange-2019-Setup benötigt seit CU4 auf einem Core-Server das .NET Framework 4.8. Der übliche (Offline-)Installer von Net4.8 bricht jedoch, vermutlich mangels GUI, die Installation ab. Da ich anderen Frankysweb-Lesern die Zeit für Fehlversuche sparen möchte: die Lösung ist das MSU-Paket aus dem Microsoft-Catalog.
Ich habe außerdem Franks Script ein wenig verwurstet:
######
$dest = „C:\install\“ #Zielpfad festlegen
New-Item $dest -Type Directory
Install-WindowsFeature Server-Media-Foundation, RSAT-ADDS
$urls = @(
‚https://download.microsoft.com/download/2/E/6/2E61CFA4-993B-4DD4-91DA-3737CD5CD6E3/vcredist_x64.exe‘ #Visual C++ Redistributable Packages für Visual Studio 2013
‚http://download.windowsupdate.com/d/msdownload/update/software/ftpk/2020/01/windows10.0-kb4486153-x64_43ee33b302bfdba470542a128a9ee0b58faa5412.msu‘ #Microsoft .NET Framework 4.8 for Windows 10 Version 1809 and Windows Server 2019 for x64 (KB4486153)
‚https://download.microsoft.com/download/D/F/F/DFFB3570-3264-4E01-BB9B-0EFDA4F9354F/UcmaRuntimeSetup.exe‘ #Unified Communications Managed API 4.0 Runtime
)
ipmo BitsTransfer #importiere BITS-Transfer-Modul
foreach ($url in $urls) {
Start-BitsTransfer -Priority High -Source $url -Destination ‚C:\install‘ #starte Download
$i = $dest+(Split-Path $url -Leaf) #starte Setup
Write-Host Starte: $i… -ForegroundColor cyan
Start-Process -FilePath $i
}
######
Danke Jörg ! You made my day ;)
Hi …
müssen Suchdienste separat installiert werden ? Habe EX2019 auf einem Core-Server installiert, bei
Get-MailboxDatabaseCopyStatus | ft Name,contentindexstate
bekomme ich als Ausgabe ein NotApplicable ?
Volltextsuchen im OWA enden ohne Ergebniss.
Fehlerbehung zum Probelm (Exchange 2019 unter Windows Server 2016):
Problem:
Der folgende Fehler wurde generiert, als „$error.Clear();
if (Get-Service MpsSvc* | ?{$_.Name -eq ‚MpsSvc‘})
{
Set-Service MpsSvc -StartupType Automatic
Start-SetupService -ServiceName MpsSvc
}
“ ausgeführt wurde: „Microsoft.PowerShell.Commands.ServiceCommandException: Der Dienst „Windows Defender Firewall (MpsSvc)“ kann aufgrund des folgenden Fehlers nicht konfiguriert werden: Zugriff verweigert —> System.ComponentModel.Win32Exception: Zugriff verweigert
— Ende der internen Ausnahmestapelüberwachung —„.
Lösung:
1. Use Regedit to rename key \HKLM\System\CurrentControlSet\Services\mpssvc\Security to Security.old
2. Restart
3. Run Exchange installation
4. Restart
5. Use Regedit to rename key \HKLM\System\CurrentControlSet\Services\mpssvc\Security.old back to Security
6. Restart
Nachtrag:
Habe es geschafft. Der Security Reg Key der Windows Firewall muss geändert werden. Schon übel…
HAallo Peter,
ich stehe aktuell vor dem gleichen Problem, und hatte auch bereits die Reg-Keys manipuliert, allerdings ohne Erfolg.
Wärst du so nett und würdest mir sagen welchen key du mit welchem user/recht versehen hast ?
Viele Grüße und schöne Feiertage
Martin
Hallo,
ich stehe aktuell vor demselben Problem und würde auch gerne erfahren, was genau Du umgestellt hast.
Danke!
Viele Grüße
Marc
Wie geht das, stehe vor dem gleichen Problem
Hallo,
Ich versuche momentan verzweifelt einen Exchange 2016 CU11 auf einen Windows 2019 Std. Server zu installieren. Habe schon zig Installationen hinter mir, aber zum ersten Mal auf einen 2019er Server. Beim „Installationspunkt“ bekomme ich folgende Fehlermeldung:
Fehler:
Der folgende Fehler wurde generiert, als „$error.Clear();
if (Get-Service MpsSvc* | ?{$_.Name -eq ‚MpsSvc‘})
{
Set-Service MpsSvc -StartupType Automatic
Start-SetupService -ServiceName MpsSvc
}
“ ausgeführt wurde: „Microsoft.PowerShell.Commands.ServiceCommandException: Der Dienst „Windows Defender Firewall (MpsSvc)“ kann aufgrund des folgenden Fehlers nicht konfiguriert werden: Zugriff verweigert —> System.ComponentModel.Win32Exception: Zugriff verweigert
— Ende der internen Ausnahmestapelüberwachung —„.
Kann mir hier jemand weiterhelfen? Weiss nicht mehr weiter…
Hallo Frank,
alles bestens. launchEMS läuft jetzt.
Gruß, Georg
Das war jetzt aber einfach: Mit mehr Arbeitsspeicher und größerer Festplatte funktioniert auch launchEMS.
Hallo Georg,
entschuldige bitte die späte Antwort. Gibt es noch ein Problem mit launchEMS oder läuft es jetzt fehlerfrei?
Gruß,
Frank
Einen Workaround habe ich gefunden. Mit diesem Script kann ich arbeiten, nachdem ich die powershell gestartet habe:
$s = New-PSSession -ConfigurationName Microsoft.Exchange `
-ConnectionUri http://mein-exchange-server.de/PowerShell/ `
-Authentication Kerberos
Import-PSSession $s
Was muss ich ändern, wenn launchEMS diesen Fehler liefert? Eine gute Lösung per Internetrecherche habe bis jetzt nicht gefunden.
C:\Program Files\Microsoft\Exchange Server\V15\bin\RemoteExchange.ps1 : Cannot dot-source this command because it was
defined in a different language mode. To invoke this command without importing its contents, omit the ‚.‘ operator.
At line:1 char:1
+ . „C:\Program Files\Microsoft\Exchange Server\V15\bin\RemoteExchange. …
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [RemoteExchange.ps1], NotSupportedException
+ FullyQualifiedErrorId : DotSourceNotSupported,RemoteExchange.ps1
Sehr übersichtliche Darstellung, vielen Dank! Bei den Voraussetzungen wird auch der Domänen-Funktionslevel geprüft. Den musste ich auf meinem Testsystem von Windows Server 2008 R2 auf (mindestens) Windows Server 2012 R2 heben, sonst wäre es nicht weitergegangen.
Danke vielmals für deine tollen und sehr ausführlichen Anleitungen. Meine Migration auf den Exchange 2019 mit Core Server hat sehr gut funktioniert! Davor auch von 2013 auf 2016.
Ich denke da wird sich bei der bisherigen Empfehlungen nix geändert haben, 200 GB bzw. 2 TB.
Hi, hab mal eine kurze Frage und zwar was ist bei Exchange 2019 eigentlich die Obergrenze für die Postfachdatenbankgröße?
Vielen Dank für die sehr gute Anleitung! Es stellt sich mir die Frage, ob sich ein Wechsel von WinServer/Exch 2016 auf 2019 alleine wegen der Möglichkeit der Core-Installation lohnt?!?