Application Considerations When Upgrading to Windows Server 2008
Publish Date: 3/10/2008
So how do servers upgrade themselves to Windows Server 2008, and how does data, that is not part of the operating system get handled? One of the interesting points to note is that in Windows Server 2008, the data that is part of the operating system, the registry and certain file locations are recreated during the upgrade. Secondly data that is not part of the operating system that is found in certain directories is quarantined. Details at the bottom.
I recommend that you make a clean install of Windows Server 2008, so that you have a good reference point and then go through you system testing from there. While the upgrade process has become more consistent with Windows Server 2008, there are still small paths that the migration could take which could make your OS install unique, and give you no reference point for testing ( which is what all ITPROs really do not want ). The details below comes from a few white papers on the subject which I think will be interesting for those special cases when you need to do the upgrade. ......
Changes When Upgrading to Windows Server 2008
Upgrading to Windows Vista and Windows Server 2008 is more complex than in previous versions of the operating system. Instead of just installing new versions of binaries over those of an existing computer, the new operating system is installed side-by-side with the older operating system. Then the data and settings are migrated from the older version to the newer version, and then the source is deleted. While this is architecturally more correct and certainly build a clean OS install, this does cause some obvious complications that you should be aware of.
Secondly in Windows Server 2008 the upgrade process is destructive to the pre-existing operating system state. The upgrade engine removes all previous data from the operating system (including executable files, settings, the Windows registry, and operating system data files) and creates an entirely new Windows installation. For components and server roles within the operating system, there are upgrade manifests which control the process. The upgrade manifests have metadata for each component that details how to transfer the settings and data files into their new locations. Non-operating system entries in the registry are persisted forward and merged with the new registry in the destination install.
Here are roughly the steps the operating systems goes through
- Copies Setup sources to the local hard drive.
- Dynamic update runs to check for updated setup files and compatibility database updates.
- Checks to ensure that the source operating system is supported for an upgrade.
- Presents the compatibility report to the user. The report provides details about any applications that must be uninstalled or that may cause problems after upgrading. The report also recommends backing up the server before continuing.
- Dynamic update runs to check for updated system components and drivers.
- Unpacks the image file to the local hard drive.
- Identifies system data including operating system state, user files, and drivers. The operating system state is identified based on upgrade manifests that are authored by Microsoft.
- Extracts the WinPE boot files to the local drive.
- Restarts the server.
The upgrade engine performs the following actions from within WinPE:
- The server boots into WinPE
- Files marked for gathering are moved to an in-place transport directory.
- Moves operating system binaries from the source operating system into quarantine.
- Collects SID and local account data.
- Installs a language-neutral version of the operating system.
- Installs a language-specific MUI package.
- Installs any optional components that are needed for parity with the source operating system.
- Configures access control lists.
- Installs any updates collected by dynamic update.
- Apply SIDs, computer name, and local accounts to the server.
- Installs Plug and Play drivers.
- Creates user profiles for the user accounts on the source computer.
- Applies machine-specific operating system state.
- The upgrade engine migrates data to the new installation including the following:
- Applies the operating system state that was captured by the upgrade manifests
- Applies settings from the unattend file (if an unattend file was provided to Setup).
- Deletes files from the quarantine directory that were from the source operating system. Restarts the server.
Application Compatibility Checks
Because upgrading to Windows Server 2008 may cause problems for certain applications, a message is presented to all users through the compatibility report that is shown after you initiate the upgrade. If necessary, the report will recommend the appropriate action before upgrading. To verify software compatibility on the Windows Server Catalog and to download tools and documentation, go to
If software isn’t supported on Windows Server 2008, or if the software vendor does not support software that is installed during the upgrade of the operating system, uninstall that software before you upgrade. If you do not uninstall the software, your system will be unsupported, the software might not work, and software settings or other information might be lost.
There are several different types of upgrade blocks within the compatibility report. The database used to identify applications to block is shared with Windows Vista and does not generally cover server applications.
The types of blocks that you may see are:
- Upgrade hard block: These blocks prevent the upgrade from continuing until the issue causing the block is resolved, which may be a bad driver, incompatible source operating system or known bad applications (malware, for example). Users can not circumvent a hard block.
- Upgrade soft block: These blocks recommend against upgrading without taking preventative measures or validating that a software vendor has provided an upgraded version for the new operating system. Users can choose to continue past a soft block, because there is no known risk of upgrade failing with the application installed.
- Program Compatibility Assistant hard block: The Program Compatibility Assistant is a runtime mechanism which can prevent applications from running on the system. The process is prevented from loading, and the user can not circumvent the block.
- Program Compatibility Assistant soft block: The Program Compatibility Assistant can also provide a soft block which advises the user that the application may not run successfully without being updated. Users can still choose to run the application and continue with the upgrade.
Changes that May Impact Your Applications
Because of the differences in the upgrade process in Windows Server 2008, it is possible that pre-existing applications will not be authored in such a way that they function predictably post-upgrade. Most will just work, but there are specific changes that application developers should be aware of, and which may necessitate testing or patching.
The Quarantine Directory
During the collection phase, the upgrade engine goes through all system folders that need to be recreated in the new operating system. When booted into WinPE, the upgrade engine moves files into the quarantine directory that 1) are not listed in upgrade manifests and 2) are located in places that conflict with the new operating system (for example, %SystemRoot% and %Prog