Home > Exchange Server > Set-Exchange2010Features.ps1 – Automated prerequisite installation for Exchange Server 2010

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

  1. October 29, 2011 at 4:53 pm | #1

    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

    • Pat Richard
      October 31, 2011 at 8:56 pm | #2

      I’m assuming that you’ve verified those services are running? And you’re running the installer as an admin?

  2. Barren
    December 15, 2011 at 6:38 am | #3

    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.

    • Pat Richard
      December 16, 2011 at 4:13 pm | #4

      It’s on the list!

  3. chad markley
    December 22, 2011 at 6:55 pm | #5

    Great job dude!! Saved me a bunch of time. Best script I’ve seen like it

  4. Pete
    December 28, 2011 at 12:56 pm | #6

    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.

    • Pat Richard
      December 30, 2011 at 12:57 am | #7

      Thanks for pointing this out. I’ve released a new version that resolves this.

  5. March 27, 2012 at 8:36 am | #8

    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!

    • Pat Richard
      March 27, 2012 at 8:43 am | #9

      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.

  6. Chad D
    April 25, 2012 at 8:03 pm | #10

    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.

    • Pat Richard
      April 26, 2012 at 9:28 am | #11

      Which option is best is an organizational choice. But option 11 is the option I use the most.

  1. September 26, 2011 at 9:59 am | #1
  2. December 23, 2011 at 11:15 am | #2
  3. January 6, 2012 at 3:56 pm | #3
  4. April 1, 2012 at 3:58 am | #4

Leave a Reply

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

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="">