WinDeveloper IMF Tune

WinDeveloper IMF Tune
WinDeveloper IMF Tune

Inside Exchange Cluster Setup and Troubleshooting Tips (Part1)

Nirmal Sharma [Microsoft MVP, MCSEx3]

Nirmal Sharma [Microsoft MVP, MCSEx3] Photo

Nirmal is a Microsoft MVP in Directory Service. He has been involved in Microsoft Technologies since 1994 and followed the progression of Microsoft Operating System and software. He is specialised in writing “internal” technical articles, white papers and tips on various Microsoft technologies.

Cast your Vote
Poor Excellent

The objective of this article is to explain the internal process behind the Exchange Setup and what happens when Exchange Setup detects that it is going to operate in the cluster environment.

The ordinary Exchange setup process is completely different from the cluster setup process. This article doesn't explain how to install a Single Copy Cluster (Active/Passive) or CCR cluster in Exchange Server 2007. Instead it explains and covers the inside of Exchange Cluster Setup process and what happens before the cluster installation is invoked by the Exchange Setup.

The main focus of this article series is Exchange 2007. However we will also point out anything specific to Exchange 2003 as we go along.

This article series will help you in troubleshooting Exchange Setup problems. It explains the Exchange Setup log files and how these store information essential for troubleshooting. We also look into the procedures/functions used by the setup. If the Exchange Setup stops, that means it either couldn't execute a function or a function didn't return a value. This is the type of low-level troubleshooting explained in these articles.

Please note that the articles won't explain the functions used to install the Exchange Components or roles. This is taken care of by the ScSetupAtom procedure which is out of scope of this article. I will discuss this in a separate article in detail.

The article series is organized in two main sections. The following topics will be discussed in these sections:


  • Overview of Setup Files in Exchange 2003 and Exchange 2007
  • Overview of INS and UNS files
  • First step of Exchange Setup - Validate Server and Get Domain and Exchange-specific information


  • How does Exchange Setup detect that it is going to operate in the cluster environment?
  • Extending Schema Process
  • Exchange Schema Version
  • Exchange Cluster Installation process
    • Copy cluster specific files and their overview
    • Executing Cluster Specific UNS and INS files
    • Creating Exchange resources types and register with the Cluster Service
    • Creating Exchange Cluster Registry entries
    • Starting Exchange Services
    • Loading Exchange modules
    • Exchange Setup Log Files.


Exchange Setup performs many checks before it allows you to install the Exchange Server either in the cluster or stand-alone environment. For example, the Setup executes functions and then writes entries in the log file. The procedure/function always starts with "Entering <procedure/function name>" and then ends with "Leaving <procedure/function name>" after executing all the functions within it.

This is shown in the Exchange Server Setup Progress log file:

Entering and Leaving a Procedure

FIGURE 1 - Entering and Leaving a Procedure

As shown above, the Exchange Setup first enters into the ScIsComputerMemberOfDomain procedure. The procedure, in turn, executes all the functions defined within it (in this case NetGetJoinInformation). The functions do their job, and then return back to the procedure. The procedure is then completed by leaving that procedure. An entry is written in the Exchange Server Setup Progress file with "Leaving ScIsComputerMemberOfDomain". This is how the Exchange Setup executes the functions and closes them as and when required. If you face any problem, you only need to check the entry which starts with "Entering" and then look for the function which failed to execute or didn't return any value.

You should always look into the Exchange Setup log files for any problem. This section explains these functions in detail so that you can troubleshoot the Exchange installation problems as it comes.

We start from the pre-setup work that the setup performs before it decides to install the Exchange Components in a cluster or a non-cluster environment. This section covers the functions and procedures used by the setup to perform the common tasks. Each topic is discussed in detail with the troubleshooting tips which you should perform if your Exchange installation fails. The corresponding entry is also shown in the Exchange Setup Log files.

The figure below has all the functions executed by the Exchange Setup before it starts to install the Exchange components.

Exchange Setup Internal Process Before Starting Cluster Installation.

FIGURE A - Exchange Setup Internal Process Before Starting Cluster Installation.

Overview of Setup Files in Exchange 2003 and 2007

As shown in figure A, the Exchange 2007 Setup files are different from those in Exchange 2003. In Exchange 2003 Setup.exe queries SERVER.INF file whereas in Exchange 2007 SETUP.exe queries the ExchangeServer.MSI file. The MSI file is exactly mapped to SERVER.INF file in the previous versions of Exchange.

Exchange Setup doesn't immediately know which files to copy. The setup performs several different tasks as per the options selected during the installation. To copy only the required files setup looks into SERVER.INF (in Exchange 2003) and ExchangeServer.MSI (in Exchange 2007) file as shown in the above figure. The Exchange Setup looks for SERVER.INF and ExchangeServer.MSI files always in the default location of the source directory.

The SERVER.INF file contains Setup Sections. As an example, this file contains a section name "DestinationDirs". This section contains the directories to be created on the Exchange Server computer. If you wish to create any other directories while Exchange setup runs, simply put the directory names after the section name. The setup will create the customized directories for you. This scenario is useful when you want to customize the Exchange source media as per your organization needs.

The SETUPDB.DLL file implements the two main functions: DllRegisterServer and DllUnregisterServer. The Exchange setup uses these two functions to load and unload the Exchange DLLs. Your Exchange Server will be up and running after the setup completes. This is because of this file. If this file is not there then setup won't work and you need to register all the Exchange DLLs manually using Regsrv32.exe command.

The ExchangeServer.MSI file also contains the same information but in the MSI format. MSI files can be read with the help of an MSI editor. You can also check the ExchangeSetup.Msilog LOG file for more information.

Troubleshooting Tips

Make sure important setup files are not missing.

Overview of INS and UNS files

The *.INS and *.UNS files play a very important role in the Exchange Setup. INS stands for "Installation" and UNS stands for "Uninstallation". These contain information about installing specific Exchange components and are located in the Data directory of the Setup CD. Each INS also has a corresponding UNS file. The UNS is used to uninstall the component which was installed during the setup.

The setup calls a procedure named CRegistryManager to start interpreting the lines written in these files. This procedure contains all the necessary functionality to edit the registry. CRegistryManager in turn calls the procedure ScProcessFile to process the INS or UNS files.

If you wish you can also add some lines and let setup do that for you. As an example, this is shown in the below Exchange Setup Progress Log file.

Please note this article only explains the INS and UNS files related to the Exchange Cluster. There are other files (INS and UNS) which are not explained here because they serve a different purpose (e.g. they are used to install the Exchange Components or roles).

As an example, the Setup interprets the SA_REG.INS file to create the System Attendant Service registry entries as shown in the figure below:

Contents of SA_REG.INS file

FIGURE A.1 - Contents of SA_REG.INS file.

The setup just interprets the lines in the file. The SA_REG.INS contains more entries in it but these entries are not shown here. The corresponding log entry in the Exchange Server Setup Progress.log can be seen in the figure below:

Exchange Setup interpreting the EX_REG.INS file

FIGURE A.2 - Exchange Setup interpreting the EX_REG.INS file.

Let me tell you a very important point. Setup always performs a delete operation (i.e. interprets the UNS file) before it installs a component using the INS file. This is just to make sure the setup is installing the Exchange component from scratch.

Troubleshooting Tips

If setup gives any error message or the corresponding component is not being installed, always check the INS file for that component.

If registry entries for any exchange component has been deleted accidentally or you don't know what all registry entries were there then just open the INS file and create the registry entries.

Always check the INS file name in the Exchange Server Setup Progress.log file, if any of the Exchange components is not installed by the Setup. This will give you an idea whether Setup processed that file or not to interpret the lines in the file.


The first part of this article series provided an overview of the Exchange Setup process including the role played by INS and UNS Exchange Setup files. We saw the mechanism Exchange Setup uses to call functions and then return the values to the Exchange Setup. This mechanism is helpful when troubleshooting an Exchange Installation. In the next part of this series, we will continue to explain the Setup Work - before cluster installation.

User Comments - Page 1 of 1

Add New Comment...

Mark 19 Aug 2008 09:48
Interesting, when are you planning to submit the second part?

Griffin, Msoft 16 Aug 2008 06:57
Thank you very much.

Very nice article! I would like to read all the parts.
Copyright © 2005 - 2014 All rights reserved. is not affiliated with Microsoft Corporation