Deploying Vista – Part 3: Understanding Configuration Passes

If you would like to read the other parts in this article series please go to:

In the previous article of this series we examined the three phases of Windows Setup in Windows Vista and Windows Server 2008. To recap briefly, these phases look like this:

  1. Windows PE phase – Once you see the screen that says “Installing Windows—that’s all the information we need right now” this first phase of Setup has completed and the next phase has begun.
  2. Online Configuration phase – There is no user input during this phase, and when your system performs its last reboot, this phase is finished and the final phase of Setup will begin.
  3. Windows Welcome phase – During a manual install, this is the phase where you get prompted to choose a user name and picture, type a computer name, choose a desktop background, and so on.

From a user’s perspective, the above describes what the Setup process looks like. Under the hood however, things are a bit more complicated because of something called configuration passes. A configuration pass is an aspect of the Setup process that can be controlled by configuring settings in an answer file. In other words, whatever happens during a configuration pass can be automated. And while there are only three phases of Setup from the user’s perspective, there are seven different configuration passes that can occur, depending on what type of installation you’re trying to perform.

To see why it’s important to understand these different configuration passes, take a look at the following screenshot which shows me about to add the x86_Microsoft-Windows-Shell-Setup component to my answer file:

Figure 1: Adding the x86_Microsoft-Windows-Shell-Setup component to an answer file

Note that of the seven different configuration passes available within an answer file for deploying Vista, the x86_Microsoft-Windows-Shell-Setup component can be added to six of them. This means you could add this component to the offlineServicing pass (selected in the figure above) for your answer file, to the generalize pass for your answer file, to the specialize pass, and so on.

So the question immediately presents itself like this: Which configuration pass of my answer file should I add this component to? The answer depends on two things: understanding what these different configuration passes do and understanding the different scenarios you can follow for deploying Vista. The rest of this article deals with the first topic, while my next article will describe some possible deployment scenarios.

Let’s now examine each of these seven configuration passes, and afterward I’ll show you how they relate to the three Setup phases described previously. And by the way, if terminology like “the x86_Microsoft-Windows-Shell-Setup component of an answer file” still sounds mysterious to you, don’t worry—working with Vista answer files will soon become clear to you over the next few articles in this series.

The “x86” prefix to x86_Microsoft-Windows-Shell-Setup simply means we’re dealing with deploying 32-bit Vista, which will be the focus of most of these articles, although I will describe later on the differences for deploying 64-bit Vista.

Pass 1 windowsPE

Answer file settings for the windowsPE configuration pass are used to configure how the Windows Preinstallation Environment (Windows PE) behaves. Windows PE is a minimal version of Windows that is designed to prep a system for installing Windows on it, and you can use Windows PE to boot a system that has no operating system, partition and format its drives, copy disk images to the system’s drives, and launch Setup from a network share.

This really means two things: the windowsPE pass is equivalent to the first phase of Windows Setup, but it’s also something standalone by itself. So by configuring answer file settings for this pass you can either control how the Windows Setup process initiates or you can control how Windows PE works in and of itself.

Most of the answer file settings for the windowsPE pass are found under the x86_Microsoft-Windows-Setup component (Figure 2) of which we’ll have more to talk about in a future article:

Figure 2: Adding the x86_Microsoft-Windows-Setup component to the windowsPE configuration pass

Pass 2 offlineServicing

Settings for this configuration pass can be used to do things like add additional drivers, security updates, hotfixes, language packs, and other packages to your Windows Image (WIM) file. Note that you can’t add boot-critical drivers during this pass—these must be added during the windowsPE pass described above, otherwise Windows PE won’t be able to boot your system. Note also that you can’t add service packs using this pass—or at least, you can’t use this pass to add SP1 to a Vista RTM image, the reason being that Microsoft made some architectural changes to the servicing stack in VistaSP1 and the servicing stack can’t update itself.

From the perspective of running Windows Setup, the offlineServicing pass happens during the second phase of Setup after the .wim file has been copied to the system’s hard disk. This is because the image has to be applied to the hard drive before it can be serviced by Package Manager, the built-in tool in Vista that is used for applying updates, fixes and packages to the image (more on Package Manager in a later article in this series). It’s a bit more complicated that that however, since you can also use the offlineServicing pass to apply packages to an offline Windows image, a process that is known as servicing the image.

Many of the settings for the offlineServicing pass are found under x86_Microsoft-Windows-Shell-Setup, but there are lots of others as well (such as those under the Packages node in Windows SIM) which we’ll examine in due course.

Pass 3 specialize

This pass is used to configure system-specific settings such as network settings, internationalization, domain membership, and so on. There are numerous answer file components that can be added for this pass which we’ll examine later.

From the perspective of running Windows Setup, the specialize pass corresponds to the second part of the second phase of Setup (i.e. between the first and second reboots of your system) but there’s more this pass can do depending on the deployment scenario you’re working with. That’s because the specialize pass can also be used together with the generalize pass as described next.

Pass 4 generalize

This pass is closely tied to using the sysprep /generalize command. Sysprep , the System Preparation Tool, is used mainly to prepare an image for deployment onto multiple destination computers. We’ll look at Sysprep later on when we examine the various scenarios for deploying Vista, but here’s a quick bird’s-eye view from 10,000 meters: the generalize pass is used to create your reference image of Windows, while the specialize pass can then be used to apply different customizations to this reference image for different uses.

Pass 5 auditSystem

This pass happens only when Setup is running in audit mode using the sysprep /audit command. Audit mode is used in certain deployment scenarios for adding various customizations to a Windows image and bypasses the final Windows Welcome phase of Setup. Whatever takes place during the auditSystem pass happens in the context of the Local System account and occurs before the user logs onto the computer.

Pass 6 auditUser

This pass is similar to auditSystem (i.e. it only happens when Setup is running in audit mode) except that whatever happens during this pass occurs in the context of the user’s account and takes place after the user has logged on to his computer.

Pass 7 oobeSystem

This final configuration pass corresponds to the beginning of the third and final phase of Setup and is used to configure happens during the Windows Welcome phase of Setup. 

Putting It All Together

If we focus solely on an unattended, clean install of Windows Vista onto a bare-metal system, the comparison between the three phases of Windows Setup and the seven configuration passes looks something like this:

Figure 3: Comparing Windows Setup phases with configuration passes for an unattended, clean install of Vista (click to enlarge)

For a very basic unattended install of Vista, you may only need to configure settings for the windowsPE and oobeSystem passes. For more complex install scenarios, you could also configure settings for the specialize pass, and if you need to add updates, fixes or other components during your unattended install you can configure offlineServicing pass settings as well.

If you would like to read the other parts in this article series please go to:

About The Author

Leave a Comment

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

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Scroll to Top