Building an Exchange 2013 LAB Environment using Windows Server 2012 from scratch – Part 4: Provisioning your Exchange Servers…

So where were we?

Ah, yes – in the previous three parts of this series we have covered:

  • The conceptual schematic of what our test lab domain will look like.
  • Established the specifications for each of the virtual machines that we would be using in the Lab.
  • How to provision the Domain Controller for the LAB in on Hyper-V server on Windows Server 2012.
  • Built the Windows Server 2012 O/S for the domain controller.
  • Installed Active Directory on the Domain Controller using a Powershell Script.
  • Installed Active Directory Certificate Services on the domain controller.

If you would like to review those parts you can find them at the links below:

In this the fourth part of the Series I will take you through the provisioning of your Exchange Servers in Hyper-V, summarising the install of Windows Server 2012 Data Centre (as we have covered the step by step install of Windows 2012 in the first part), and finally installing the prerequisites for Exchange 2013 on Windows Servers 2012.

Provisioning your Exchange Servers

In part one of the series I took you through manually using the Hyper-V manager to provision the domain controller. In this part I would like to show you how you can use the Hyper-V module in Powershell to query settings in a CSV file and create your Virtual Machines using a very simple PowerShell script.

The script and CSV file

The following is the simple script that I have written which takes input from a CSV file (more details on this later) and creates the Virtual Machines as per the configuration data from the source file.


    Simple Powershell Script to Provision Hyper-V Guests

    Version 0.1

    Author: Andy Grogan

    Usage <scriptName.ps1> -csvFile


Import-Module Hyper-V





$VMData = Import-CSV $CSVFile

foreach($VMDef in $VMData){

    $VMName = $VMDef.VMName

    $VMPath = $VMDef.VMPath

    $VHDPathName = $VMDef.VHDPathName

    $VHDSize = $VMDef.VHDSize

    $VMMem = $VMDef.VMMemory

    $VSwitch = $VMDef.Vswitch

    $ProcCount = $VMDef.ProcessorCount

    $ISO = $VMDef.OSISOPath

    if(!(Test-Path $VMPath)){

        New-Item $VMPath -Type Directory


    New-VM $VMName -Path $VMPath

    New-VHD -Path $VHDPathName -SizeBytes $VHDSize

    Add-VMHardDiskDrive -VMName $VMName -Path $VHDPathName -ControllerNumber 0

    Set-VMMemory -VMName $VMName -DynamicMemoryEnabled $True

    Set-VMMemory -VMName $VMName -MinimumBytes $VMMem -MaximumBytes $VMMem -StartupBytes $VMMem

    Add-VMNetworkAdapter -VMName $VMName -SwitchName $VSwitch

    Set-VM $VMName -ProcessorCount $ProcCount

    Add-VMDvdDrive -VMName $VMName –Path $ISO


Write-Host "Script Completed" -ForeGroundColor Green

The CSV file should contain the following column headings:

  • VMName – Name of the Virtual Machine.
  • VMPath – Physical path on your Server where the Virtual Machine configuration will live.
  • VHDPathName – Physical path and file name of the primary system disk for your VM.
  • VHDSize – Size of the system disk, this is represented in Bytes – therefore 100GB is 107374182400 bytes.
  • ProcessorCount – The number of vCPU’s assigned to the Virtual Machine.
  • VMMemory – The amount of RAM assigned to the Virtual Machine – this is in Bytes, therefore 5GB is 5368709120 in bytes.
  • VSwitch – The name of the VSwitch that you wish the primary interface to use – in my lab this is called RIO_PUBLIC_VSWITCH.
  • OSISOPath – The path on your Server to the Windows 2012 installation ISO.


You can download a copy of the script above, and a sample CSV file for reference from the links below.

[ Hyper-V Provisioning Script – 1.1KB ]

CSVIco [ Sample Source CSV File – 1.0 KB ]

Running the Script

Like with all the scripts that have been provided in this series – you need to ensure that before you try to run them – you have the correct execution policy configured (RemoteSigned). This is covered in the following post:

Copy the script and your CSV file to a location on your Hyper-V server, open a Powershell command prompt and use the following command line:

.\provVM.ps1 –CSVFile <path and name of CSV file>

The script will then go away and provision your machines.


If you then review the Hyper-V manager – you will see your new VM are now present:


If you check the properties of any one of the VMs you will see that they have been configured as per the settings in the CSV file.


You are now in a position to Power the VM’s on and being the process of installing Windows Server 2012 Data Centre.

Installing Windows 2012 Data Centre Edition

In the first part of this series; I did a detailed overview of installing Windows Server 2012 – therefore I will not be covering that again. Where you should pick the configuration up again in this post is after you have renamed the computer, configured the relevant IP settings and joined the machine to the art-test domain and installed relevant Windows Updates..

The first machine that we will build will be art-mbxcas-01 – which will be our first Mailbox / CAS and HT server.

What I will cover here is installing both the Operating System Pre-Requisites and supporting components required for a successful installation of Exchange 2013 on Windows Server 2012.

Required Operating System Components

On your Exchange Server – open a Powershell command prompt then enter in:

Import-Module ServerManager

Then enter in:

Add-WindowsFeature RSAT-ADDS

Then copy and paste the following code:

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

You will then need to restart the computer – you can do this by typing:


Within the Powershell command window.

Required Supporting Software

In order to successfully install Exchange Server on the VM – you will need to install some supporting software which is required in order for it to function correctly.

You will need to download each of the following to a location on your Exchange VM:

  1. Microsoft Unified Communications Managed API 4.0, Core Runtime 64-bit
  2. Microsoft Office 2010 Filter Pack 64 bit
  3. Microsoft Office 2010 Filter Pack SP1 64 bit

You will then need to install them.

Microsoft Unified Communications Managed API 4.0, Core Runtime x64

As per Microsoft:

Unified Communications Managed API (UCMA) 4.0 is a managed-code platform that developers use to build applications that provide access to and control over Microsoft Enhanced Presence information, instant messaging, telephone and video calls, and audio/video conferencing.

Double click on the Setup installer for the MUCM API which will begin by showing you the following introduction screen.


You will then be presented with the following welcome screen which explains the actions that the installer intends to perform on your server. When you are ready click on the “Next” button.


Accept the licensing agreement by checking the “I have read and accept the license terms” then click on the “Install” button.


The setup process will then install the required components on your server.


Set will then complete – click on the “Finish” button.


Installing the Microsoft Office Filter Pack with Service Pack 1

As per Microsoft:

The Microsoft Filter Pack is a single point-of-distribution for Office IFilters. IFilters are components that allow search services to index content of specific file types, letting you search for content in those files. They are intended for use with Microsoft Search Services (Sharepoint, SQL, Exchange, Windows Search).

Install this product if you want to search for content in the file types listed below.

The Filter Pack includes:

Legacy Office Filter (97-2003; .doc, .ppt, .xls)

Metro Office Filter (2007; .docx, .pptx, .xlsx)

Zip Filter

OneNote filter

Visio Filter

Publisher Filter

Open Document Format Filter

Double click on the Microsoft Office Filter pack installer – you will be presented with the following welcome screen, when you are ready click on the “Next” button.


Accept the licensing agreement by checking the “I accept the terms in the licensing agreement” check box. When you are done click on the “Next” button.


The setup process will then install the required files on your Exchange Server.


When setup is completed – you will be presented with the following dialog box – click on the “OK” button to finish.


You will then need to install Service Pack 1 for the Microsoft Office filter pack. Double click on the Service Pack 1 setup file. You will then be presented with the introduction screen – click on the “Continue” button when ready.


Setup of Service Pack 1 for the Office 2.0 filter packs is very quick – when it has been completed you will be presented with the following dialog box – click on the “OK” button when setup has completed.


And then Repeat

You will now need to repeat the above setups on the remaining two servers:

  • art-mbxcas-02
  • art-mbx-01

In the next part

In the next part of the series I will cover:

  • Preparing the Active Directory Schema and Domain.
  • Installing Exchange 2013 on your provisioned Virtual Machines.

One comment

Leave a Reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.