Installing Exchange 2016 from Scratch | part 5


On this post we are going to cover a basic installation of Exchange Server from the command line or PowerShell. 

I’m going to cover the installation from the console because we can specify the location path and name for our first database and database logs. 

Before begins, please add two new virtual hard disk to your Exchange Server from the VM settings.

We are going to use one disk to store the database file and the second disk to store the database logs.  

On a real environment is a best practice place those (database file and database logs file) files on separated disk. 


One of the prerequisites of Exchange Server 2016 is Windows Server 2008 R2 or higher. And that the schema master is running Windows Server 2008 R2 or later. 

Our demo covers that prerequisite because we are installing Exchange Server 2016 on a Windows Server 2016. 

Preparing Active Directory 

Run the next command in PowerShell to install the remote tools administration pack. 

Install-WindowsFeature RSAT-ADDS 

Preparing Exchange Server 2016: Mailbox Role 

Copy the next command and run it from PowerShell: 

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

Installing Exchange Server 2016 

Before proceed with the installation of Exchange, we need to format our two new hard disks.

From the Computer Management, go to the “Disk Management” section and do right click -> Online to bring “online” those disks.

Then on do right click again and select the option “Initialize Disk”

Now format the disks withe the next options:

UPDATE: Instead of Format the disk with the parameters showed on the next image, it is a best practice to use PowerShell to set an extra parameter no included on the GUI.

DB DISK: Format-Volume -DriveLetter E -NewFileSystemLabel “Database” -FileSystem ReFS -SetIntegrityStreams $false
Logs DISKS: Format-Volume -DriveLetter L -NewFileSystemLabel “Logs” -FileSystem ReFS -SetIntegrityStreams $false

Another change will be set a new value to our paging file (swap file), the best practice is set the value with the next formula: size = total RAM + 10 MB.
On my case I did add 6G B (6144 MB) of RAM to my server, so the page file size will be: 6154 MB.

Usually if you are working on a production environment, the Exchange Administrator is not a domain Admin or doesn’t have all the privileges in the domain.

We are going to create a new users with the permissions needed to perform an Exchange installation.

In your domain controller open “Active Directory Users and Computers” and create a new user under the “Users” OU.

Now, open the properties of your new user and go to the tab “Member of” and add him/her as member of the roles: Enterprise Admins and Schema Admins.

Almost done, now the next thing will be add our new user as member of the local “Administrator” group in our Exchange server machine.

After do this change, reboot your server and login as your new user.

We are going to proceed to install Exchange on our virtual machine, the first thing to do is Download the lasted Exchange Server 2016 version from Microsoft: 

At this moment, the last version is CU10. 

Once you have the Exchange Server 2016 installation image (.iso) you can mount that file in your VM CD/DVD drive (letter D in my case). 

Extend the Active Directory Schema. 

Before to continue, if you created a new user to install Exchange, this user must be member of the “Schema Admin” role. 

Open a new CMD on the “Drive” where your Exchange is mounted (“D” on my case). 

  • Setup.exe /PrepareSchema /IAcceptExchangeServerLicenseTerms 

Preparing Active Directory 

During this step, Exchange will create containers, objects, and other items in Active Directory to store information. The collection of the Exchange containers, objects, attributes, and so on, is called the Exchange organization

  • Setup.exe /PrepareAD /OrganizationName:”Organization Name” /IAcceptExchangeServerLicenseTerms 
  • Example: Setup.exe /PrepareAD /OrganizationName:devandadmin /IAcceptExchangeServerLicenseTerms 

Preparing Active Directory Domains 

This step creates additional containers and security groups, and sets permissions so Exchange can access them. 

  • Setup /PrepareDomain /IAcceptExchangeServerLicenseTerms 

If you have multiple domains, you can use the parameter “/PrepareAllDomains” instead of “/PrepareDomain”. 

When you prepare all domains in the Active Directory forest for Exchange, your account needs to be a member of the Enterprise Admins security group. 

Installing Exchange Server 2016 mailbox role with a specific database and logs location 

Now it is time to install our Exchange Server, we choose install Exchange from the console because we can specify the database name, database location and database logs location on a single command.

Before ran the next command, I created a folder called “DB01” on the driver “E” and “L”, because I’m going to use these folders to store our EDB (database file) file and logs files. 

  • Setup.exe /mode:Install /role:Mailbox /OrganizationName:devandadmin /IAcceptExchangeServerLicenseTerms /InstallWindowsComponents /MdbName:DB01 /DbFilePath:”E:\DB01\DB01.edb” /LogFolderPath:”L:\DB01″ 

The command below has the next parameters 

  • MdbName: will be the name of our database, when you install Exchange from the GUI, the setup process adds a default and not friendly value to this parameter. 
  • DbFilePath: It it’s the “physical” location of your database file, it is recommended set the same name to the database file than the “logical” database name. 
  • LogFolderPath: Physical location of the database logs file. 

It is a good idea go to eat something because the process is going to take a couple of time. 

If everything goes well you will see the next results. 

Everything worked as expected!!!
As you can see, we need reboot our Exchange Server.

Now open your browser and go to: http://servername/ecp 

You are going to be asked for your credentials (domain\user) and after a success login you are going to be able to see the Exchange Admin Center. 

Congratulations!! We did it, We did it!.

We have Exchange Server 2016 up and running, but we have a lot of work to do before complete all the configurations.

On the next posts I’m going to show you how to configure our DNS records, naming convection for Exchange, create new users, groups, contacts, shared mailbox, etc.

Thank you for read me!

Leave a Reply

Your email address will not be published. Required fields are marked *

%d bloggers like this: