In case that you have a failed Exchange 2007 setup for some reason, you might notice that setup now resumes the previously failed setup rather than start completely over. How does that work? Through registry values called "watermarks".

Watermarks are used to mark points of installation. Setup sets the mark of what server roles are installed halfway through setup as opposed to at the end. This is important because Exchange 2007 setup can be resumed. If there is a setup failure, the setup environment can be changed and then setup can be restarted from the watermark indicator as opposed to starting setup from the beginning.

In addition to the setup log files located in C:\ExchangeSetupLogs, there will be several additional useful files that are based on the component definition files mentioned in the preceding section. These files have the following form:

<Install_Type>-<ServerRole_Or_Component>-Date-TimeStamp.ps1

  • These files will be retained and each install produces a new set depending on the tasks involved.
  • They can also be used to troubleshoot setup failures. If a server role for example the Hub Transport Role failed, look in the Install-HubTransportRole-yyyymmdd-xxxxxxxxx.ps1.

When you open those, you will see that some lines start with something similar to this:

# [ID = fdfe6b1a, Wt = 1, isFatal = False]

Explaining what that means:

ID is the ID of the task being run. This ID can be tied back into the registry watermark such that if setup were to fail, thus leaving behind a watermark, you can do a search of the .PS1 file to determine what task setup failed on. While it is straightforward to see what task setup failed on in the ExchangeSetup.log this will give you a definite idea.

In situations where a server role is "partially" installed or an install has failed, comparisons are made in the registry under HKLM\Software\Microsoft\Exchange\v8.0\<name of role>. In this location is a set of registry values that give us a range of values describing the role state:

Not installed – there will be no sub container for the role.

Unpacked – The UnpackedVersion value indicates the versions of the files that have been copied during the file copy phase of setup, but no components have been configured.

Note: The "AdminRole" does not have a ConfiguredVersion reg value since it doesn't have configuration.

Partially configured - Configuration is currently in progress or failed partway though. Typically the presence of a Watermark would indicate a partially configured role. The value for a watermark can be used mapped to an install task in a *.PS1 file located under C:\ExchangeSetupLogs.

Fully installed (Configured) – The presence of the ConfiguredVersion and UnpackedVersion value indicates a successful install. The value of ConfiguredVersion indicates the version of the product that has been configured.

Note: UnpackedVersion and ConfiguredVersion values must match otherwise Setup will complain.

- Jon Bradley, Nagesh Mahadev