Exchange 2013 Unattended Installation Script v1.5 (Updated)

Ex2013 LogoI’m pleased to announce that the Exchange 2013 unattended installation script has been updated and supports fully automated installation of Exchange 2013 on Windows Server 2008 R2 SP1.

The new version contains the following changes:

  • Added support for Windows Server 2008 R2 SP1. To fulfill the requirements, code was added to install .NET Framework 4.5, Windows Management Framework 3, disable/enable Internet Explorer Enhanced Security Configuration (IE-ESC), install required hotfixes KB974405, KB2619234 and KB2758857 (which supersedes KB2533623).
  • Because of the mandatory reboot after installation of the hotfixes, a phase was inserted; this phase will be skipped when installing on Windows Server 2012.
  • Added InstallPath to AutoPilot parameter set (or default path won’t get set).

You can download the updated version of the script via the original Exchange 2013 Unattended Installation Script page (which also contains instructions) or directly from the Technet Gallery.

The script has been tested with Exchange 2013 CU1 but it should work with RTM as well (if you must ..). Your feedback is very much welcomed!

The last version is version 1.53, dated June 15th, 2013; For changes, consult the changelog on the original article or Technet Gallery page.

Exchange 2013 CU2 Announcements from TechEd

Ex2013 LogoAs most of you probably know, last week was TechEd North America. The sessions on Exchange 2013 did disclose some changes for Cumulative Update 2 (CU2), which – according to the announced CU cadence – should arrive somewhere in the summer, most likely July. For those who didn’t follow my Live Tweeting from the event, here’s a quick summary of the announced or probable changes for CU2.

Restoration of 100 DB Limit
Exchange 2013 CU2 Enterprise Edition will bump the limit for the number of database per server from 50 to 100. The initial limit to 50 for Exchange 2013 RTM (and CU1) is said to be chosen due to performance reasons, but many customers complained they want to host more databases per server. For CU2, Microsoft made changes which enable increasing this limit to 100 again. Perhaps the customers complaining transitioned from or are currently running Exchange 2010, and are facing having to introduce additional servers to host an equal number of databases. In such cases, be advised that regardless of this increased limit, Exchange 2010 and 2013 are not directly comparable and you should utilize the Exchange 2013 Server Role Requirements Calculator to size your Exchange 2013 environment (an update will follow as soon as CU2 becomes available). An important side note to keep in mind with all this is that adding (or removing) databases in Exchange 2013 requires a restart of the Information Store service, so you might prefer maximizing the number of databases from the start, not when required to, so you’ll avoid having to shut down services or having to move mailboxes around to comply with your SLAs.

DAG Management Service
The to be introduced MSExchangeDAGMgmt service will offload the Replication service by hosting the Replication Service MonitoringComponent, providing information on health status, logging events in the same location MSExchangeRepl used to, i.e. Application Eventlog using the same Crimson channel, but still using MSExchangeRepl as source.

DAG Witness Server in Azure (possibly!)
When you’re an Azure subscriber, a feature possibly included in CU2 will allow your DAG Witness Server to be located in Azure. This allows for example customers with 2 physical datacenters to utilize automatic site fail-over, as automatic site fail-over normally requires a 3rd well connected datacenter for hosting the Witness Server. From an Azure perspective, the Witness Server will be single File Server on Azure IaaS VM or two File Servers using persistent VMs with XStore shared storage. Note that extending Active Directory permissions to the Public Cloud is required for this option.

Responder Throttling per Group
Responders are part of Exchange 2013′s Managed Availability, and define if and how to act on generated alerts, e.g. restart a service or take a Mailbox server out of service. In CU2, several responders will be throttled per group, e.g. DAG, instead of per server.

ARR Support
Not CU2 related, but it was announced that support for ARR, which stands for IIS Application Request Routing, is coming for Exchange 2013. With the discontinuation of TMG, customers are looking for alternatives to publish their Exchange 2013 (or Lync web services) and ARR is one of them, often used because it utilizes IIS and is free despite it lacking some of TMG’s features. A clue for this could lie in one of the features announced for Windows Server 2012 R2, which will contain a Web Application Proxy, which basically will be an HTTP reverse proxy aimed at publishing corporate resources for access from the public network.

Exchange Server 2013 Architecture Poster

Already available at TechEd NA 2013 in hardcopy, but now also available in PDF: the long awaited Exchange Server 2013 Architecture Poster!

Ex2013ArchThis poster (PDF) contains the architecture highlights and feature set of Microsoft Exchange Server 2013. You can download the Microsoft Exchange Server 2013 Architecture poster here.

Exchange 2013 Server Role Requirements Calculator 5.6

Ex2013 LogoOnly 10 days after the release of the first public version of the Exchange 2013 Server Role Requirements Calculator, the calculator gets an update. The new version number is 5.6.

Changes since version 5.1:

  • Optimized Volume Design Architecture Formula
  • Fixed Recommended Min Number of GC Cores (Secondary Datacenter)” calculation to use SDC instead of PDC CAS count.
  • Fixed CPU comments and removed erroneous information.
  • Fixed multiple conditional formatting bugs.
  • Fixed problem where this workbook had to be the active workbook at all times.
  • Fixed problem with extra-wide Fail Server button on the distribution worksheet.
  • Enabled variable based tracing.
  • Resolved VBA Divide by Zero error caused by DiskGroup = 0.
  • Fixed problem with lagged copies in conjunction with multiple databases per volume.
  • Fixed missing “\” character in path names in MailboxDatabases.csv file.
  • Fixed problem with WAN failure simulation.
  • Fixed calcNumAMBXServersDC2 to ensure it cannot have more servers that primary site.
  • Fixed calculated IO Multiplication factor formulas to take into consideration IOPS override.
  • Added condition to validate that there are enough copies for multiple databases/volume scenario.
  • Fixed conditional formatting and JBOD storage results when JBOD evaluation is disabled.

You can download the calculator here. For more information please consult the release notes and read me.

Exchange 2013 Server Role Requirements Calculator v5.1

Ex2013 LogoIt’s been long wait since the release of Exchange 2013, but today the Exchange Team finally released the first version of the Exchange 2013 Server Role Requirements Calculator. This initial release is numbered version 5.1.

Some of the highlights over the Exchange 2010 calculator, mostly due to changes in the architecture, are:

  • The calculator includes transport sizing (hence the name, I guess);
  • Accommodating for Client Access Server role with sizing for multi-role server deployments;
  • Support for multiple databases / JBOD volumes;
  • Configurable witness server location (primary, secondary or tertiary data center);
  • Configurable server names and database prefixes for generated scripts;
  • Generated scripts include script for DAG creation;
  • Support for single HA, Act/Pas and Act/Act distribution models.

You can download the calculator here. For more information, please consult the documentation here.

Exchange 2013 Unattended Installation Script v1.1

Ex2013 LogoComing back from a nice vacation to the beautiful Brittany in France, I thought it was time to collect and process feedback and suggestions on several scripts, starting with the Exchange 2013 unattended installation script for Windows Server 2012.

Changes in version 1.1 of the script:

  • When the script was used to also prepare Active Directory, RSAT-ADDS-Tools was uninstalled as part of the cleanup. Per request, I’ve removed the uninstallation of that feature;
  • The script now detects pending reboots after installing the required features. When ran in AutoPilot mode, the script will reboot and restart the phase (preparing Active Directory, which can’t be run with pending reboots because Exchange’s Setup won’t like it). When not running in AutoPilot mode, you need to start the script manually. You can omit providing installation parameters as they are saved, even a pending is detected;
  • The Windows feature Server-Media-Foundation will be installed explicitly as it is an UCMA 4.0 requirement;
  • The credentials provided for AutoPilot mode will be validated;
  • The OS version check is changed to a string which should enable installation on non-US Operating Systems.

You can download the updated version of the script via the original Exchange 2013 Unattended Installation Script page or directly from the Technet Gallery. Enjoy!

Exchange 2013 CU1 Help File

Ex2013 LogoA quick post as the Exchange 2013 Cumulative Update 1 Help file (.CHM) file for offline usage has been released on the Microsoft Download Center.

The offline help files files are convenient if you’re on the road or in a location (yes, that happens sometimes) without internet connection.

You can download the Exchange 2013 Cumulative Update 1 .CHM Help file dated April 4th, 2013 for On-Premise and Hybrid deployments here.

Exchange 2013 CU1 ETA: April 2nd

Ex2013 LogoToday the Exchange Team announced postponing the release of Exchange 2013 Cumulative Update 1 for a few more days. Originally, CU1 was scheduled for Q1 2013, but the date has been set now at April 2nd, 2013.

While it may sound disappointing when you’re waiting for Exchange 2013 RTM CU1, it makes sense to postpone it a bit. As the team indicated,the time is used to add functionality required for coexistence scenarios with Exchange Server 2010 which otherwise had to be put in an update for Exchange 2010 Client Access servers. I expect people to be less happy as Exchange 2010 Service Pack 3 was heralded as the Exchange 2010 product level for coexistence support with Exchange 2013 (running CU1).

Also, looking at time frames involved with testing and accepting updates in production environments, I personally applaud this decision as putting that code in Exchange 2013 at the cost of a few days may in the end be faster than adding that code to Exchange Server 2010, requiring customers to initiate test an acceptance tracks for production updates.

So, until further notice we’ll have to wait just a few more additional days to see what Cumulative Update 1 will bring us.

Exchange 2013 Unattended Installation Script (Updated)

Ex2013 LogoI’m pleased to announce the availability of Install-Exchange2013.ps1, a PowerShell script to perform a fully unattended setup of Exchange Server 2013 RTM or CU1.

The script takes care of:

  • Installing required Windows Server 2008 R2 SP1 / 2012 features and optionally prepare Active Directory (phase 1);
  • Install Exchange Server 2013 prerequisites (phase 2);
  • Optionally install Exchange Server 2013 (phase 3)
  • Optionally – depending on phase 3 – perform post-configuration (phase 4, tailor to your own needs);
  • When done, the script will perform some cleaning up, like removing the state file and setting the startup of Transport Service to Automatic (phase 5).

Usage
This script version requires a domain-joined Windows Server 2012 system, an account to perform the installation (and optionally prepare Active Directory) and the location where the Exchange Server 2013 installation files are stored (e.g. an UNC path).

The syntax is as follows:

Install-Exchange2013.ps1 [-InstallCAS] [-InstallMailbox] -SourcePath <string> [-Organization <string>] [-MDBName <string>] [-MDBDBPath <string>] [-MDBLogPath <string>] [-InstallPath <string>] [-TargetPath <string>] [-AutoPilot] [-Credentials <pscredential>] [-NoSetup] [<CommonParameters>]

A short description of the parameters:

  • Organization (optional): Specifies name of the Exchange organization to create. When omitted, the step to prepare Active Directory (PrepareAD) will be skipped.
  • InstallMailbox: Specifies you want to install the Mailbox server role.
  • InstallCAS: Specifies you want to install the CAS role.
  • MDBName (optional): Specifies name of the initially created database.
  • MDBDBPath (optional): Specifies database path of the initially created database (requires MDBName).
  • MDBLogPath (optional): Specifies log path of the initially created database (requires MDBName).
  • InstallPath (optional): Specifies (temporary) location of where to store prerequisites, transcript and state file. Default location is C:\Install.
  • NoSetup (optional): Specifies you don’t want to perform Exchange setup.
  • SourcePath: Specifies location of the Exchange 2013 installation files (setup.exe).
  • TargetPath: Specifies the location where to install the Exchange 2013.
  • AutoPilot (switch): Specifies you want to automatically restart, logon using credentials specified and continue the installation. When not specified, you will need to restart, logon and start the script manually each time (without parameters).
  • Credentials (optional): Specifies credentials to use for automatic logon. Use DOMAIN\User or user@domain. When not specified, you will be prompted to enter credentials.

Note that the script uses an XML file to store the (original) parameters used to start the script but also to keep track of the the process. Of course, if required, you can use predefined XML files to run the script without parameters.

Note that when not present, the script will try to download the prerequisites from the internet. When that isn’t possible or to save bandwidth, you can put them in the location defined by InstallPath and the script will detect and use them.

The post-configuration is currently adding IFilters for OneNote and Publisher (Mailbox) only. There are comments in the script where to add your own additional post-configuration steps.

For example, assume we want to start a fully unattended install of an Exchange Server 2013 Client Access server, using a network location for the Exchange Server 2013 source files. After setting the Execution Policy to Unrestricted and storing the script locally, we start the script using:

 .\Install-Exchange2013.ps1 –InstallCAS –SourcePath ‘\\server\share\isos\Microsoft\Exchange2013\mu_exchange_server_2013_x64_dvd_1112105’ –AutoPilot –Verbose

The script will perform some checks and since AutoPilot was specified without using the Credentials parameter, the script will ask for credentials.

Capture1

After entering the credentials, the required features will be installed. Since OrganizationName wasn’t specified, Active Directory preparation will be skipped.

Capture2

After rebooting, the system will automatically log on using the credentials specified earlier and start the script (RunOnce registry key is utilized for this purpose). It will read the last known state from the XML file and will continue with the next phase, which is downloading (when not present) and installing the Exchange prerequisites.

Capture3

Next, after rebooting and the automatic logon, Exchange will be installed from the source location.

Capture4

When done, the system will perform post configuration and finalization steps including reboots and logons. Note that it may seem like a lot of reboots, but rebooting after installing Windows features and Exchange prerequisites is required anyway so I put reboots after the other milestones as well.

You can download Install-Exchange2013.ps1 here from the Technet Gallery. Please leave your feedback or bug reports in the comments.

Revision History
1.02: Fixes AD preparation logic and adds checks to see if domain is in native mode. It also fixes a small typo in the post-prepare AD function.
1.03: Tested against Exchange Server 2013 CU1, replaced installing OS features manually by using /InstallWindowsComponents and removed installation of Office Filtering Pack (routines still there because they’re required for the Exchange 2010 SP3 version I’m working on).
1.1: When AD was prepared, RSAT-ADDS-Tools won’t be uninstalled, pending reboot detection (in AutoPilot, script will reboot and restart phase), installs Server-Media-Foundation feature (UCMA 4.0 requirement), validates provided credentials for AutoPilot and checks OS version as string (should accommodate non-US OS).
1.5: Added support for WS2008R2 (i.e. added prereqs NET45, WMF3), IEESC toggling, KB974405, KB2619234, KB2758857 (supersedes KB2533623). Inserted phase for WS2008R2 for installing hotfixes; this phase is skipped for WS2012. Added InstallPath to AutoPilot set (or default won’t be set).
1.51: Rewrote Validate-Credentials due to missing .NET 3.5 Out of the Box in WS2008R2. Testing for proper loading of servermanager module in WS2008R2. Fixed logic in WS2008R2 SP1 detection.
1.52: Fix .NET / PrepareAD order for WS2008R2, relocated RebootPending check
1.53: Fix phase of Forest/Domain Level check

Exchange 2013 Help Files Updated

Ex2013 LogoA quick post as the Exchange 2013 Help (.CHM) files on the Microsoft Download Center have been updated. The offline help files files are convenient if you’re on the road or in a location without internet connection.

You can download the updated files dated January 18th, 2013 for On-Premise and Hybrid deployments of Exchange 2013 here.

On another note, there’s a new Office Visio 2013 stencil for Exchange 2013, including on-premise and hybrid deployments. You can download it here.