Installing Exchange Server 2013

Below are steps to build an all-in-one Windows Server 2012 R2 Domain controller and Exchange 2013 Server; handy for lab environments. For production, both the Domain Controller and Exchange roles should be on separate server. Read more here.

  1. Preparing Schema for Exchange Server:

Log in as Domain Admin and launch a PowerShell session and change the directory to the drive letter\path of the installation media. Run the following command to prepare the Active Directory Schema (don’t forget the period ‘.’ in front of the command):


.\setup /prepareschema /IAcceptExchangeServerLicenseTerms

If successful, you will get a message saying "The Exchange Server setup operation completed successfully” and the Schema value will now be set to 15137.

  1. Prepare Active Directory for Exchange 2013:

 Run the following command to prepare the Active Directory:


.\setup /PrepareAD /OrganizationName:OrgName /IAcceptExchangeServerLicenseTerms

When the Exchange Server 2013 completes successfully it will set the organisation objectVersion value to 15449.

Important: This will create the required Exchange containers in Active Directory and call it OrgName. Replace this value with the name of your organisation.

  1. Prepare Domain for Exchange 2013:

Run the following command to prepare the domain:


.\setup /PrepareDomain /IAcceptExchangeServerLicenseTerms

 Upon completion, it will set the Microsoft Exchange System Object objectVersion value is set to 13236.

  1. Install pre-requisites and client access server roles:

Launch PowerShell with elevated privileges and run the following PowerShell cmdlet:

Install-WindowsFeature AS-HTTP-Activation, Desktop-Experience, NET-Framework-45-Features, RPC-over-HTTP-proxy, RSAT-Clustering, RSAT-Clustering-CmdInterface, 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

This will install and enable all the necessary roles and features from within Windows Server. Restart Windows to proceed with the dependencies for Exchange Server 2013.

  1. Install Updates:

Now check for all available updates, install and restart between updating. When all updates have been installed, download and install the following in order:

  1. Start the Exchange Server 2013 Installation:

With elevated privileges, run setup.exe. Under 'Role Selection for Exchange Server', select both 'Client Access' and 'Mailbox Role'. You will be prompted to select a path for the database file locations; use separate volumes/disks if possible. Create an MX record for the server in DNS.

Information: Please refer to Microsoft’s recommendations for post-Exchange 2013 installation tasks.

  1. Accessing the Exchange Control Pane (ECP):

Exchange Management Console (EMC) was replaced with the Exchange Control Panel (ECP). To access the ECP portal locally on the Exchange Server:

 https://localhost/ecp/

Important: If you encounter an 'An error occurred during forest discovery' error, this means that certain MS Exchange Services have failed to start. Ensure you have enabled IPv6.

Important: If Exchange fails to route emails “Exchange 2013 451 4.7.0 Temporary server error. Please try again later. PRX5', you will need to do modify the default Receiving Connector scope, ie: Default 'servername' under Exchange admin center > Mail Flow > receive connectors. Open the default and under 'scope' add the server IP address:25 > Save

You may also need edit the hosts file under C:\Windows\System32\drivers\etc\hosts and include both the IP address and server name and fully qualified domain name (FQDN), ie:


192.168.0.11   ex1
192.168.0.11   ex1.magrin.one
  1. Enabling IMAP and SMTP connectors:

Run the following cmdlets in Exchange Powershell:


Set-ImapSettings -ExternalConnectionSettings {ex1.magrin.one:993:SSL}

Set-ReceiveConnector -identity "ex1\Default Frontend ex1" -FQDN ex1.magrin.one -AdvertiseClientSettings $True -PermissionGroups exchangeusers

Set-ReceiveConnector -identity "ex1\Default Frontend ex1" -FQDN ex1.magrin.one -AuthMechanism Tls, Integrated, BasicAuth, BasicAuthRequireTLS

Ensure to restart the IIS service thereafter with elevated privileges:


iisreset
  1. Accessing Outlook Web Access (OWA):

https://localhost/owa

Username: DOMAIN\user
Password: AD account password