Wednesday, March 13, 2019

Deploying Exchange Server 2019 on Windows Server 2019

I’ve recently had the opportunity to deploy Exchange Server 2019 CU1 on Windows Server 2019 and decided to capture the process so I can write this blog post demonstrating what the deployment process looks like.

Before I proceed, the following are some URLs that will be useful to review prior to beginning the deployment:

Exchange Server build numbers and release dates

Exchange Server prerequisites

Exchange Server system requirements – Network and directory servers

Exchange Server system requirements – Operating system


Forest and Domain Functional Level

Verify that the forest and domain functional level is at Windows Server 2012 R2 or higher.

.NET Framework

As the base operating system will be Windows Server 2019, it already has the correct .NET Framework 4.7.2 requirement installed but if you’re on an older OS, use the following documentation to determine the version:

How to: Determine which .NET Framework versions are installed

As shown in the screenshot below via the registry key HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full, the Windows Server 2019 base OS has Release 461814 installed:

Note that you can also use this PowerShell command to list the registry key value as well:

Get-ItemProperty -Path "HKLM:SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" | Format-List

Remote Server Administration Tools (RSAT)

Install the Remote Server Administration Tools (RSAT) on the Exchange server with the following cmdlet:

Install-WindowsFeature RSAT-ADDS

Visual C++ Redistributable for Visual Studio

Download and install the following Visual Studio packages and install them onto the Exchange server:

Visual C++ Redistributable for Visual Studio 2012 Update 4

Visual C++ Redistributable Packages for Visual Studio 2013

Note that the two above files have the same names but slightly different file sizes.

Microsoft Media Foundation

Install the Microsoft Windows Media Foundation on the Exchange server with the following cmdlet:

Install-WindowsFeature Server-Media-Foundation

Unified Communications Managed API 4.0 Runtime

Download and install Unified Communications Managed API 4.0 Runtime on the Exchange server:

Once the installs have completed, the Programs and Features window should list the following:

Installing Exchange Server 2019

Proceed to run the Microsoft Exchange Server 2019 setup.exe to start the installer:

Select whether to use the recommended settings from Microsoft or not (you can configure these later as well):

We’ll be installing the Mailbox role which automatically selects the Management tools as well. Note that you will also need to check the Automatically install Windows Server roles and features that are required to install Exchange Server option as that would install all the other required roles and features we did not install in the prerequisites:

Whether you install Exchange on the C drive or another is up to you. I used to prefer leaving everything on C as it is easier when performing a recovery install but as Exchange continues to require more space for logs, I’ve began installing it onto a separate drive.

Decide whether to enable or disable malware scanning:

The readiness checks will now begin:

Note the following warning messages:


Setup will prepare the organization for Exchange Server 2019 by using 'Setup /PrepareAD'. No Exchange Server 2016 roles have been detected in this topology. After this operation, you will not be able to install any Exchange Server 2016 roles.

For more information, visit:


MAPI over HTTP, the preferred Outlook desktop client connectivity with Exchange server, is currently not enabled. Consider enabling it using: Set-OrganizationConfig -MapiHttpEnabled $true

For more information, visit:

The first warning simply indicates the setup would prepare Active Directory and the second is that the current environment does not have MAPI over HTTP enabled.

Proceed with the install and depending on various factors, the install can take 30 minutes or longer:

… and that’s it! The install looks a lot like Exchange Server 2016 and is fairly straight forward.

Note that one of the first things I proceed with after the install is to update the certificate and URLs for owa, ecp, mapi and others (don’t forget autodiscover) for the newly installed server to avoid certificate warning message users may receive via their Outlook clients when the self-signed certificate is presented.

No comments: