Deploying Windows Vista with BDD 2007
At a Glance:
- BDD 2007 Solution Accelerator
- Preparing the image
- Drivers and application packages
You've been putting it off, but it's finally time to take the plunge. Your organization has hundreds, maybe even thousands, of machines that need to be migrated from Windows 2000 or Windows XP to Windows Vista. And it's your team's job to make it happen.
So where do I start?
If you have been installing Windows® operating systems for years, you've probably noticed that relatively few things have changed from Windows NT® 3.5 through Windows XP. The installation and configuration process has been fairly consistent, the tools have been the same, and the process overall wasn't altered. But with Windows Vista®, the whole process has been redesigned and there are many new tools. For a good overview of the changes and how they'll impact you, see the "10 Things You Need to Know about Deploying Windows Vista" article from the November 2006 TechNet Magazine, also available online at technetmagazine.com/issues/2006/11/Deployment.
How do I learn the new process and tools?
There are two choices:
- Learn each new tool. Study all of the available documentation. Identify how to insert each of these into your existing processes. Make the necessary adjustments. Then validate the results.
- Take advantage of something that has already done all of those things for you.
Sure, you could choose the first option, but then this would be a book instead of a magazine article. I suggest going with door number 2: the "something" that you'll use is the Business Desktop Deployment (BDD) 2007 Solution Accelerator, which is available for download through the Microsoft® Desktop Deployment Center at microsoft.com/desktopdeployment.
The BDD 2007 Solution Accelerator is a set of tools, guidance, and step-by-step procedures to simplify the Windows operating system deployment process, tying together all the new deployment processes and tools introduced with Windows Vista.
To get started with BDD 2007, identify a Windows XP or Windows Server® 2003 computer on which you want to install BDD 2007. Before installing, you first need to install the Microsoft .NET Framework 2.0 and Microsoft Management Console (MMC) 3.0. Then, you can install BDD 2007 itself. Once installed, review the Release Notes document available through the BDD 2007 folder on the Start menu. Then launch the MMC snap-in using the Deployment Workbench shortcut (see Figure 1).
Figure 1** Starting the BDD 2007 Deployment Workbench **(Click the image for a larger view)
At this point, it would probably be a good idea to review the information available in the Information Center, especially the Getting Started checklist and the documentation. Be sure to download the latest news and component listing by right-clicking on the Components node and choosing Check for updates.
There is one more prerequisite needed: the Windows Automated Installation Kit (AIK). BDD 2007 needs the tools included in the Windows AIK for many of the functions it performs. You can get the Windows AIK in two different ways: download it from the Microsoft Download Center (go.microsoft.com/fwlink/?LinkId=85377) or use the "Components" node in the Deployment Workbench to do it for you. Either way, it is a fairly large download so be prepared for it to take a little while.
After Windows AIK is installed, you can move on to the next phase: gathering all the files that you need to perform the Windows Vista deployment.
What files do I need?
At this point, you'll need to gather together the Windows Vista installation files, the applications that you want to install, any drivers that are needed for your hardware, and any Windows Vista updates or language packs that you may want. All will get copied to the distribution share directory structure created when installing BDD 2007.
Creating Your Own Custom Image
The steps discussed in this article describe how to deploy the standard Windows Vista image directly from the Microsoft product DVD. But you might want to deploy a customized image containing additional applications (such as the 2007 Microsoft Office system) needed on all of your computers. This is the classic debate: should you stick with a minimal "thin" image and install everything else at deploy time, or should you create a larger "thick" image with everything preinstalled? Often the answer depends on factors such as time available to do the deployment, administrative effort to create and maintain the image, network capacity, and so on. In most situations thinner is better, but it's your call.
Regardless of what you decide to include in your image, make sure that the process of creating the custom image is completely automated. With automation, making updates to the image is as simple as adding another step into the process, then re-running the entire process, capturing a new image at the end.
So how would you do that with BDD 2007? It's really fairly simple:
- Create a build for creating your custom image.
- Modify the task sequence for this build to include all of your custom steps.
- Perform a "bare metal" deployment from the lab deployment point (booting from the Windows PE ISO), selecting that build.
- Specify that you want to join a workgroup.
When performing those steps, the deployment wizard will present another pane.
By choosing to capture an image of the reference computer, BDD 2007 will automatically execute Sysprep to prepare the operating system for capturing, then reboot to Windows PE and execute ImageX.exe to capture a new WIM image. Then you can import that image into the Deployment Workbench and use it for your next deployment.
Capturing a reference image with BDD 2007 (Click the image for a larger view)
First, let's copy the OS installation files. Insert your Windows Vista DVD (preferably volume license media, since that won't require a separate product key for each installation), then launch the New OS Wizard by right-clicking on the Operating Systems node in Deployment Workbench and choosing the New command. Select Full Set of Source Files and specify the path to your DVD drive (or the appropriate path if you have already copied these files to another location). Complete the wizard, accepting the remaining defaults. Now you should see one or more OS images (depending on the media that you used) in the list shown when clicking on the Operating Systems node.
Applications are next. You don't have to add any applications at this point, but if you do, you'll be able to select them from a list when deploying Windows Vista. Ideally, you would want to specify a command line for installing the application without user interaction, as you don't want anyone to have to wait around for that application installation to begin. Just to see what this looks like, try adding a single application now by choosing the New command on the Applications node in Deployment Workbench, then complete the New Application Wizard (see Figure 2).
Figure 2** Adding an application to the workbench **(Click the image for a larger view)
Next up are OS packages. There are three types of packages that you are likely to be interested in: language packs, security updates, and Windows Vista components.
Language packs enable Windows Vista to operate in many different languages. For details on the supported languages, see microsoft.com/globaldev/vista/Vista_Language_Support.mspx. The language packs, which are packaged as CAB files, can be downloaded from licensing.microsoft.com for all Software Assurance customers, and are available from Windows Update if you are running Windows Vista Ultimate. (Note that only Windows Vista Enterprise and Windows Vista Ultimate support multiple language packs installed on a computer.)
Windows Vista security updates are typically released monthly and are available for download through microsoft.com/technet/security/bulletinsandadvisories as individual MSU files.
You can also include new Windows Vista components, such as Windows PowerShell™. These components are available for download from the Microsoft Download Center (microsoft.com/downloads), and are also packaged as MSU files.
Behind the scenes, all of these are actual- ly components—also called packages, hence the OS Packages node. These components can all be injected into Windows Vista either online (while the OS is running) or offline (when it isn't). In the case of BDD 2007, you always inject them offline, after the Windows Vista image has been expanded and placed on the disk, but before it boots for the first time.
There is one additional challenge: the MSU files are designed to be installed online, while Windows Vista is running, using the WUSA.EXE update installer. In this example, however, you'll want to install these updates offline. For that, you need the CAB files containing the actual components. Well, these MSU files are actually CAB files themselves, with the real component CAB file inside. You can extract these CAB files from the MSU files yourself using a command such as:
EXTRACT.EXE file.msu -F:*.CAB C:\
That would then give you the CAB file that you need to import. Note that Microsoft has released a patch for BDD 2007 that automatically does this extraction. Once installed, this manual step is no longer necessary; you can point BDD 2007 at the MSU files and it will take care of the rest. For more details on this patch, see support.microsoft.com/kb/937191.
To add these components into Deployment Workbench, right-click on the OS Packages node and choose New to start the New Package Wizard. Specify the path to a folder containing the packages that you want to add.
Lastly, you may need drivers for the computer hardware on which you would like to run Windows Vista. Find the drivers you need from the vendors' Web sites or from Microsoft Update, download them, and then extract them from whatever they were packaged as. That last step can be a little tricky, but the end result should be the raw driver files: the .inf, .sys, .dll, and related files needed for the driver itself.
When you have the driver files extracted, run the New Driver Wizard by right-clicking on the Drivers node and choosing New Deployment. Workbench will scan the directory structure looking for all .inf files, so don't worry about cleaning up the extracted directory structures.
As the drivers are imported, Deployment Workbench creates a catalog of all the driver details, including the platforms supported, manufacturer and version, and list of Plug and Play (PnP) IDs supported by the driver.
What is done with these drivers? Do I inject them into the operating system image I imported earlier?
BDD 2007 doesn't make any modifications to the imported OS image. Instead, the drivers are injected during the deployment process. The basic process goes like this:
- You run a utility (Microsoft.BDD.PnpEnum.exe) on the computer being deployed, identifying all the PnP IDs present on the computer.
- Look up each of those PnP IDs in the driver catalog. For each match found, copy the driver files needed to the computer.
- Instruct Windows Vista setup to inject the drivers into the OS after the image has been applied to the disk, but before Windows Vista starts for the first time. This order is essential since some of these drivers, such as mass storage drivers, may be needed for the operating system to start.
Am I ready to deploy yet?
There are just a few more steps before you can deploy. First, you need to define a build that associates an operating system in the distribution share with the settings that should be used and the sequence of tasks that need to be executed to perform the OS installation and configuration.
To create this build, right-click on the Builds node and choose New to start the New Build Wizard. Specify a build ID (a simple value of your choice with no spaces or special characters) along with a build name and description, both of which will be seen when performing the operating system deployment (see Figure 3). Then select the operating system you want to install, and specify some basic settings to use.
Figure 3** Specifying basic build information **(Click the image for a larger view)
OK, now are we ready to deploy?
One more thing is needed: a deployment point. Simply put, this is a network share containing all the files that you've gathered so far, all the build details, and the Windows PE images that are used for the deployment process. Creating a deployment point works just like the other steps you've seen so far: right-click on the Deployment Points node and choose New. Select Lab or single-server deployment (see Figure 4) and accept the rest of the defaults.
Figure 4** Choosing the type of deployment point **(Click the image for a larger view)
After finishing the wizard, right-click on the new deployment point in the list pane and choose Update to generate the share and Windows PE images.
Remember the drivers that you added earlier? Those same drivers, at least the network and mass storage ones, are also needed by Windows PE, so this update process will automatically add the drivers to the Windows PE image.
Are we ready to deploy yet?
Yes! First, let's try a deployment to a new computer. Take the LiteTouchPE_x86.iso file from the \distribution\boot folder and burn it to CD-R using your favorite CD writer software, or use the cdburn.exe tool that you can download from Microsoft (go.microsoft.com/fwlink/?LinkID=77796). Boot a computer from the CD, which will start Windows PE and show the initial welcome wizard shown in Figure 5.
Figure 5** Ready to start a deployment **(Click the image for a larger view)
Choose Run the Deployment Wizard and click Next to start it. From there, you can choose the build that you defined, any applications that you added, and any language packs that were imported. You can also choose to join a domain, specify the name of the computer, and configure various other settings. You can even specify that you want to automatically capture a new custom image (using Sysprep, Windows PE, and ImageX to create a new image file).
The deployment may take a while (depending on the speed and type of computer), but will not require any user interaction. When the deployment wizard is completed, a summary screen will be displayed to let you know about any warnings or errors logged during the process. This enables you to quickly verify that the deployment was successful—a yellow or red summary screen means more attention is needed, while white indicates everything was OK.
Now try a machine that is already running Windows XP. From a command prompt, map a drive to the Distribution$ share you created on your BDD 2007 server, then run LiteTouch.vbs to begin deployment:
NET USE M: \\MyServer\Distribution$ cscript.exe M:\Scripts\LiteTouch.vbs
This will start the same deployment wizard that you saw before, except now there will be some new choices (see Figure 6).
Figure 6** Choices for a computer running Windows XP **(Click the image for a larger view)
If you choose Refresh this computer, the existing OS will be removed (after optionally capturing the user data and settings using the User State Migration Tool, which would need to be downloaded using the Components node as was done earlier with Windows AIK), and a fresh installation of Windows Vista would be performed. You could also choose Upgrade this computer, which lets Windows Vista setup take care of upgrading the existing OS, preserving the existing apps, data, and settings on the computer. The option you choose depends on a variety of factors, although most will choose to perform a refresh in order to start with a clean, known state.
So that's everything I need to know?
What about Windows XP?
What if you are still deploying Windows XP? Don't worry, you can still use BDD 2007 to help with that process. The same steps apply; just use Windows XP installation files to create the initial build, capture a new Windows XP Windows Imaging (WIM) image—deploying a Windows XP image is much faster than performing an unattended install—then use that WIM file for your subsequent deployments.
Keep in mind that, compared to Windows Vista deployments, there are a few extra complications when deploying Windows XP:
Windows XP mass storage drivers require extra configuration, such as TEXTMODE folders, unattend.txt settings, and sysprep.inf settings. Of course, because mass storage drivers can't be injected into existing Windows XP images, you need to capture a new image each time you need to add an additional mass storage driver. Also, Windows XP images are not HAL-independent, so you may need to have two or three separate images. Finally, language packs and security updates can't be injected off-line into Windows XP, so they need to be installed after Windows XP is up and running.
If you use BDD 2007 for your Windows XP deployment, you'll already be fully prepared for Windows Vista once you decide the time is right.
No, that's just scratching the surface. But seeing the process working end-to-end lets you view how all the new tools work together without requiring that you learn each one. Now you can dig into the BDD 2007 scripts and logs to see what was performed. You can build your own custom images and add them into BDD 2007 to deploy instead of the standard Windows Vista image. You can create DVD media or USB flash drives with your image loaded on them. You can integrate SMS 2003 and its OS Deployment Feature Pack into the process.
Where can I find more information?
Review all of those documents that I skipped over earlier—there are well over a thousand pages available, divided up between the different teams typically involved in a deployment project. Also check out the microsoft.com/desktopdeployment site mentioned previously. Use the microsoft.public.deployment.desktop newsgroup where IT pros like yourself ask all sorts of Windows deployment questions. Check out third-party Web sites like deployvista.com and myitforum.com, where there is a wealth of information about BDD 2007 and Windows Vista deployment. Check out the new Windows Vista Resource Kit book (microsoft.com/mspress/books/9536.aspx) available from Microsoft Press. Read my blog at blogs.technet.com/mniehaus for discussions on various parts of BDD 2007. Talk to your local Microsoft representatives about BDD 2007 and Windows Vista training seminars that are available in your area. Finally, see the "Deployment Resources" sidebar for additional information.
And if you have Software Assurance for the Microsoft Office System, be sure to take advantage of the Desktop Deployment Planning Services (microsoft.com/licensing/sa/benefits/deployment.mspx) to have Microsoft or a Microsoft partner spend a few days working with you to come up with a plan, and even to work on a proof-of-concept lab at your own site.
- Microsoft Desktop Deployment Center microsoft.com/desktopdeployment
- 10 Things You Need to Know about Deploying Windows Vista technetmagazine.com/issues/2006/11/Deployment
- Microsoft .NET Framework 2.0 go.microsoft.com/fwlink/?LinkId=94601
- Microsoft Management Console (MMC) 3.0 for Windows Server 2003 x86 go.microsoft.com/fwlink/?LinkId=94602
- Security Bulletins and Advisories microsoft.com/technet/security/bulletinsandadvisories
Michael Niehaus is a Systems Design Engineer in the Solution Accelerators team at Microsoft. He is responsible for developing best practices, tools, and scripts for Business Desktop Deployment. Reach him at email@example.com.
© 2008 Microsoft Corporation and CMP Media, LLC. All rights reserved; reproduction in part or in whole without permission is prohibited.