Set-Exchange2010Features.ps1 – Automated prerequisite installation for Exchange Server 2010
Update: This version resolves two bugs and adds the Adobe PDF Filter Pack and Windows Update menu options.
A while ago, fellow Exchange MVP Anderson Patricio released a script to help automate some of the tasks required before installing Exchange 2010 on Server 2008 R2. While it’s fairly straightforward to do it manually, automating the tasks can help reduce errors and issues – especially for consultants who may install Exchange 2010 often. Not long after Anderson released his script, Paul Flaherty released a revised version Bhargav Shukla released a revised version that streamlined it a little and added some functionality. Now it’s my turn.
More of an exercise to learn a method in PowerShell than anything else, I took Paul’s version and added functionality to the script. Over time, that has increased exponentially, and has become the most popular script on this site.
While SP1 added the functionality to install the required Windows features, I find this method a little nicer, as some tasks can be performed in a more structure manner. This is handy if you’re building a bunch of servers and want a standardized, error-free installation. Tasks such as disabling IPv6, downloading the latest updates, installing required Windows features, etc. are now just a menu option away.
I’ll likely tweak this some more when I have more time. But I’ve used this to build probably a dozen Exchange 2010 boxes so far, and it’s worked well. I welcome any comments or suggestions.
Download
v3.3 Set-Exchange2010Features.v3.3.zip
v3.2 Set-Exchange2010Features.v3.2.zip
v1.0 Set-Exchange2010Prereqs.zip
Installation
Set your ExecutionPolicy to RemoteSigned or Unrestricted to run the script
Changelog
See the changelog for information on features added in each version






I have a quick question for you. I am installing MS Exchange 2010 on a MS Server 2008 R2 box (GoDaddy Virtual Dedicated Server) and I have been getting an error I can’t seem to solve. So, I ran your script – number by number (except 7 because I ran 6) and I am still getting the same error. Here is the summary when I tried to install:
————————————————
Summary: 6 item(s). 3 succeeded, 1 failed.
Elapsed time: 00:00:31
Configuring Prerequisites
Completed
Elapsed Time: 00:00:01
Organization Prerequisites
Completed
Warning:
Setup is going to prepare the organization for Exchange 2010 by using ‘Setup /PrepareAD’. No Exchange 2007 server roles have been detected in this topology. After this operation, you will not be able to install any Exchange 2003 or Exchange 2007 servers.
Elapsed Time: 00:00:12
Languages Prerequisites
Completed
Elapsed Time: 00:00:03
Hub Transport Role Prerequisites
Failed
Error:
There was a problem accessing the registry on this computer. This may happen if the Remote Registry service is not running. It may also indicate a network problem or that the TCP/IP Netbios Helper service is not running.
Click here for help… http://technet.microsoft.com/en-US/library/ms.exch.err.default(EXCHG.141).aspx?v=14.1.218.11&e=ms.exch.err.Ex28883C&l=0&cl=cp
Warning:
Installing Exchange Server on a domain controller will elevate the privileges for Exchange Trusted Subsystem to domain administrators.
Elapsed Time: 00:00:07
Client Access Role Prerequisites
Elapsed Time: 00:00:05
Mailbox Role Prerequisites
Pending
————————————————–
Any help would be HUGH. I am stumped.
Thanks
I’m assuming that you’ve verified those services are running? And you’re running the installer as an admin?
This is excellent stuff and has saved vast amounts of time when building up test and live systems consistently thankyou. I wonder if you are able to update this to include the additional prerequisites as required by Service Pack 2 please? (I’m bound to make a mistake if I do it lol). Thanks again.
It’s on the list!
Great job dude!! Saved me a bunch of time. Best script I’ve seen like it
Great Job on the script.
Just an fyi, I used the latest version 3.2 and it did not add the asp.net and ISAPI filters on a CAS only install.
Thanks for pointing this out. I’ve released a new version that resolves this.
Thanks for this script. This makes building test labs so much easier. I’m starting on a new Exchange 2010 project and plan on building and flattening my lab quite a few times. This will save me a bunch of time!
Not only lab servers, but production servers as well. Last week, I deployed 52 servers in two days using a modified version of it. You get quick, repeatable results.
So would option 11 be the best one to run for a typical exchange 2010 install? This install I speak of is also part of exchange 2003 transition, if that makes any difference.
Which option is best is an organizational choice. But option 11 is the option I use the most.