Deployment has always been a bit of a headache for Windows networks. CD installs are too slow and cumbersome. Unattended installs are preferable but are complicated because of multiple file formats like unattend.txt, sysprep.inf, winbom.ini, and so on. Disk imaging is popular but requires third-party products from Symantec, Altiris, and others. Plus you can end up spending a lot of time building images for different hardware platforms and rebuilding images when service packs and patches are released.
Vista (and Longhorn Server) is designed to change all that. Some of the changes include:
- Modularization of device and language features so you can deploy only what you need and keep images lean.
- A single unified answer file (unattend.xml) that uses industry-standard XML syntax.
- A standard imaging format called Windows Imaging Format (WIM) that uses compression and single-instance storage to reduce image storage requirements. WIM is also file-based (instead of sector-based as most disk imaging formats are) which makes it possible to mount WIM images to folders so you can easily add and remove components like device drivers to customize and maintain your images instead of having to rebuild them. WIM is also independent of the underlying hardware platform, which again means fewer images to maintain.
- A disk imaging tool called XImage that can be run either from the command line or within the Windows PE pre-installation environment. XImage can be used both to capture a sysprepped master computer to a WIM file and apply the WIM file onto a target system. Note that using XImage from the command-line means you can script deployments using batch files.
The basic process of deploying Vista involves:
- Installing Vista and applications on a master computer and sysprepping it.
- Using XImage to capture the image from the master computer.
- Customizing the image by adding drivers and language modules as needed.
- Deploying the image from media or from a server using scripts.
- Maintaining the image as service packs and driver updates are released.
It's impossible to cover all this stuff in a single article, but at least we can outline some of the procedures involved. And note also that these procedures (like all Vista articles) are based on pre-release versions of the operating system, so things may change a bit when the final release version appears. Anyway, let's begin our quick birds-eye view of deploying Vista.
Preparing the Master Computer
Install Vista on the master computer (the one you want to create an image of for deploying to other machines) and install and configure any applications you want to deploy as well. Now sysprep the master computer in the usual way to remove all unique identifiers from it. So far, so good—we're on pretty familiar ground.
Imaging the Master Computer
Boot the master computer from a .wim image of Windows PE 2.0 that has the Windows Automated Installation Kit (WAIK) tools including XImage installed on it. This image can be stored on a DVD or CD or USB drive and, unlike Vista itself, PE can start directly from a WIM file. What happens is PE runs directly from memory by creating a virtual RAM disk, loading PE into it, mounting the RAM disk, and starting PE. At this point you are now running a stripped-down version of Vista that runs entirely in memory without the need of disturbing the contents of the hard drive on your master computer. Now from within Windows PE, open a command prompt and run the ximage /capture command to capture an image of your system volume and store the WIM image in the destination location you specify, which might be a network share or CD or DVD media (you can use the /split option if the entire image doesn't fit on a single media).
Deploying the Image
Boot the target machine using your Windows PE media that has WAIK installed on it, and use PE to partition the drives and apply the image you created earlier using the ximage /apply command. You could also script this process with batch files to do it in a more automated fashion using answer files and distribution shares created using WSIM, which is described below. Afterwards, you can mount your images to a file system using the ximage /mount command, customize them as necessary by adding, moving or removing files and folders, dismount the images, and reapply. Maintaining images is simple in Vista once you know your way around the ximage command.
Migrating User Settings and Data
Finally, if you're migrating an existing Windows XP computer to Vista, you now have a freshly-installed Vista computer but your user settings and data are still on your old computer. There are two ways you can migrate these settings and data from your old box to your new one:
- User State Migration Tool (USMT) 3.0, which is the preferred way if you have a lot of computers to migrate.
- Windows Easy Transfer, which is useful if you have only a few computers to migrate.
Of course, if you decided to upgrade your existing XP machines to Vista, you don't need to worry about this last step since the Setup process will handle it. In fact, the Vista upgrade process is different from traditional Windows upgrades. What happens when you upgrade to Vista is essentially the following:
- A clean version of Vista is installed on the computer using image-based deployment mechanisms.
- User settings and data and program settings are then migrated from your old operating system to Vista.
I'll be looking at how these migration tools can be used in future articles on this site.
Alternative Methods for Deploying Vista
Image-based deployment is great if you want speed and you have lots of systems to deploy. And as described previously, you can automate this process using unattend.xml files, which can be created using Windows System Image Manager (WSIM), which is essentially the Vista version of XP's Setup Manager. This automated approach works if your target systems support the Pre-boot eXecution Environment (PXE) standard. In that case, before you sysprepped your master computer you would use WSIM to create your answer file and copy it to the computer.
If you're a really big enterprise you can use Window Deployment Services (WDS), which is the Vista/Longhorn version of Windows Server 2003's Remote Installation Services (RIS). Also useful is Microsoft's Solution Accelerator for Business Desktop Deployment (BDD) which includes templates and other stuff to facilitate planning, building, testing and rolling out your deployments.