Phases of Exchange 2007 setup
Published Apr 27 2007 01:09 PM 1,837 Views

Starting off a series of posts dealing with Exchange 2007 setup, we wanted to talk about setup phases and what they do.

Setup BootStrap process

Setup.exe is a wrapper for additional executables and libraries. Setup.exe calls in to the boot strapper process which consists of a core set of software prerequisites including:

  • Microsoft Management Console 3.0
  • Microsoft Windows PowerShell
  • Microsoft .NET Framework 2.0

The start page (also sometimes internally referred to as the "Canopener"), presents links to the Exchange Server Deployment guide as well as links to the dependency applications needed to run Exchange Server 2007.

Setup will not proceed from this page until all dependency applications have been installed. When a component is installed correctly, the item will be "grayed" out, as shown below. Once all dependencies are installed the Exchange installation can proceed.

File copy phase

  1. The core installation files are copied from the source media into '% TEMP %\ExchangeServerSetup\' directory.
  2. The BPA XML file set is copied into a culture-specific subfolder such as 'en'.

Note: If Setup is running from a local source (i.e. the DVD or a local copy) then this file copy process is skipped. The only exception is if there are .msp or .exe files in the Updates directory, in which case Setup will copy to a Temp directory as described.

Setup wizard

After the file copy process is complete the setup GUI wizard starts (ExSetupUI.exe) as pictured below:

Readiness check

Upon selecting server roles, setup will proceed to make readiness checks. These checks are based on the required configuration for common components and specific configurations for server roles. This process is handled by the Exchange Best Practices Analyzer engine.

Setup uses the task called test-setuphealth to begin the readiness checks. This cmdlet calls BPA into action. The intended server role, type of scan and installation phase is passed into the cmdlet as parameters as follows:

Test-SetupHealth -Roles <role>[,<role>] -ScanType <scan> -Server <localservername>

For example, to install the mailbox role, setup will call:

Test-SetupHealth -Roles Organization -ScanType PrecheckInstall -Server SERVERA

Test-SetupHealth -Roles Mailbox -ScanType PrecheckInstall -Server SERVERA

Exchange 2007 also uses the ExBPA engine to perform prerequisite checks for Exchange Setup. Located in the C:\ExchangeSetupLogs folder is a subfolder called PreReqs. This folder contains the prerequisite XML output from each setup run. These output files are similar to ExBPA output XML files found in %APPDATA%\Microsoft\ExBPA.

Once set up has passed the readiness check phase setup will delete the temporary files used for setup and move to the core setup or installation phase.

The following diagram summarizes the setup phases:

We will continue this series with a look into different logs that setup creates and how to use them when troubleshooting problems.

- Jon Bradley, Nagesh Mahadev, also thanks to Malvin M. Seale

7 Comments
Not applicable
I have to say that the Exchange team really seems to have some of the best focus on technology accessibility.  Excellent technical converage on the blog, kept up to date with multiple team participants, exchange tips in the powershell, very useful helps for every exchange command in the EMS.

This is the gold standard that the rest of the product teams need to be paying attention to for Longhorn, ISA, etc.
Not applicable
what exactly is happening during the "Organization Preparation" part of setup?  I pass all the readiness check just fine, but once it starts org prep i get "active directory operation failed on dc1.domain.local.  The object 'CN=Public Folders,CN=All Address Lists,CN=Address Lists Container,CN=DOMAIN,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=domain,DC=local" already exists.

The object exists."

Why does setup attempt to do org prep again even though I already have a functioning exchange 2007 server?
Not applicable
Pesos, I am suspecting the purported search for the public folder was changed from the default.

Go to CN= Configuration | CN=Microsoft Exchange | CN= Your Org | CN= Address Lists Container | CN = All Address Lists. On the right you should see CN=Public Folders.

Take a look at the purported search property on the public folders address list. It should look like (& (mailnickname=*) (| (objectCategory=publicFolder) )). If its anything different you might run into this error.
Not applicable
pesos,

In addition to what Nagesh said - here is what happens during the stage of preparation of your AD, just as a reference:

http://technet.microsoft.com/en-us/library/bb125224.aspx
Not applicable
I am having a closely related issue...

Active Directory operation failed on dc1.mycorp.com. The object
'CN=Default Global Address List,CN=All Global Address Lists,CN=Address Lists Co
ntainer,CN=domain,CN=Microsoft Exchange,CN=Services,CN=Configurati
on,DC=healthforcepartners,DC=com' already exists.
Not applicable
I was trying to add the ClientAccess role to Exchange 2007. However, got the following error. Anyone knows how to change the mode of IIS from 32-bit to 64 bit?

Thanks


D:Exchange2007>Setup.com /role:ClientAccess /Mode:install

Welcome to Microsoft Exchange Server 2007 Unattended Setup

Preparing Exchange Setup

The following server roles will be installed
   Client Access Role

Performing Microsoft Exchange Server Prerequisite Check

   Client Access Role Checks        ......................... FAILED
    The Microsoft Internet Information Service is in 32-bit mode and this is a
64-bit computer. The mode must be changed before Setup can continue.


The Exchange Server setup operation did not complete. Visit http://support.micro
soft.com and enter the Error ID to find more information.

Exchange Server setup encountered an error.

D:Exchange2007>
Not applicable
I am having athis problem
The Exchange organization name is invalid. Message: '{335A1087-5131-4D45-BE3E-3C6C7F76F5EC} is not a valid value for Organization Name. The value must not contain any of '~', '`', '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '_', '+', '=', '{', '}', '[', ']', '|', '', ':', ';', '"', ''', '<', '>', ',', '.', '?', '/'.'
How do I correct this ?
Version history
Last update:
‎Jul 01 2019 03:27 PM
Updated by: