Deploying Windows has never been easy because Microsoft has never set up its operating systems with efficient deployment in mind. Yes, there have long been decent tools for customizing install parameters and creating unattended setups. However, the real deployment problem has always been the monolithic nature of the Windows editions, in which each edition exists as a separate chunk of code.
That's not so bad if you don't have to worry about language support, but when you get into international editions, the code chunks proliferate because each edition has language support built in from the code base up. Russian and Japanese versions of XP Professional aren't just XP Professional with Russian and Japanese language support layered on top. No, these are entirely separate editions of XP Pro and must be deployed as such.
And the situation gets even worse when it comes to deploying patches such as service packs and hot fixes because you must apply separate patches for each edition and language. Most IT shops turned to third-party utilities that created separate imagesessentially, the entire operating system is turned into a single filefor deployment, but they still had to deal with many different images.
Finally, it appears that this IT nightmare is ending because Microsoft has made two major changes that directly affect deployment: modularization and built-in imaging courtesy of the Windows Imaging file format.
Microsoft is building Windows Vista as a modularized OS. This means that every edition of Vista rests on a subsetsometimes called MinWinthat contains the core functionality of the OS. Microsoft says that base contains about 95% of the Vista functionality. To create any of the Vista editions that you learned about earlier, Microsoft simply adds the appropriate module (or SKU) on top of the base. This also works for language packs. The base OS has no language-specific code (it's language-agnostic, in the vernacular). Not even English is in the base OS. Therefore, you can apply only the languages you need on top of the base.
SKUshort for stock keeping unit and pronounced skewis a retailing term that refers to a unique code assigned to a product, which makes it easy for retailers to receive, identify, and inventory their stock. It also has the broader meaning of "a separate product," which is the meaning that Microsoft is using with the Vista components.
Windows Imaging Format
Imaging is now part of Windows Vista, and for this purpose, Microsoft has developed a new file-based imaging format called Windows Imaging format (WIM), which uses the .wim extension. The boot.wim file I mentioned earlier is a WIM file that contains the Windows PE image. The WIM file for Vista itself is called install.wim, and it also resides in the \sources folder of the Vista disc.
WIM files can contain images for multiple SKUs, so you can deploy any edition of Vista, for any computer type, in any language, customized in any way you want, using just a single file. And those files aren't huge, either, because WIM files are highly compressed and WIM supports single instancingthat is, a particular file is stored only once in the WIM file, even if it's required multiple times for the different SKUs.
Even better, WIM files are editable, which means you can make changes to the OS configuration without having to rebuild the entire image from scratch (a process that could take several hours).
Maintaining WIM Files with XImage
The Windows Automated Installation Kit (WAIK) comes with a new command-line utility, called XImage, that is responsible for the creation and maintenance of WIM files. Here the list of switches that XImage supports.
- /append - Appends an image into an existing WIM file
- /apply - Applies an image to the specified drive
- /capture - Captures an image into a new WIM file
- /commit - Commits the changes made to a mounted WIM
- /compress - Sets the WIM file's compression type: use
- /delete - Deletes an image from a WIM file
- /dir - Displays a list of files and folders within a image
- /export - Transfers an image from one WIM file to another
- /info - Returns the XML descriptions for the specified WIM
- /split - Splits an existing WIM file into multiple read-only WIM parts
- /verify - Verify duplicate and extracted files
- /mount - Mounts a read-only image to the specified folder
- /mountrw - Mounts a read/write image to the specified folder
- /unmount - Unmounts the image mounted to the specified folder
Of particular note here is the /mountrw switch, which places the image in the specified folder where you can view and work with the image contents just like any other folder. This enables you to make whatever changes you need to the image. When you then unmount the image, your changes are applied immediately without having to rebuild the image from scratch.
Before you can use XImage to work with a mounted image, you need to install the Windows Imaging File System Filter tool. Begin by opening the WAIK folder that contains XImage.exe, which is usually the following:
C:\Program Files\Windows AIK\Tools\x86
Right-click the wimfltr.inf file and then click Install.
For example, if install.wim is in the c:\vistawim folder and you want to mount it to the c:\vistamount folder, run the following command:
ximage /mountrw c:\vistamount c:\vistawim\install.wim 1
Automating Installations with System Image Manager
The secret to a successful deployment is, of course, the unattended installation. Windows Vista doesn't require much feedback during the install, but no one in IT these days has the time to wait around to type in even the few bits of information that Vista asks for, especially if you have a large number of systems to upgrade.
To create unattended Vista setups, you use a new tool called the Windows Automated Installation Kit (WAIK), which enables you to specify information such as the user's name, organization, computer name, and product key. You can also configure a disk partition and specify one or more "run once" commands to execute after the installation. Note that you must install the WAIK on a computer running Windows XP with Service Pack 2, Windows Server 2003 with Service Pack 1, or Windows Vista.
You use the System Image Manager (Start, All Programs, Microsoft Windows AIK, Image Manager) to specify the details of the unattended setup. You add items from the image file to the answer file (right-click a component and then click the part of the answer file you want the component to appear in), and then use the Properties pane to customize the component.
Deploying Windows Vista
With these and other new tools, deploying Windows Vista becomes a relatively simple process:
- Create a folder to hold the Vista install.wim file.
- Copy install.wim from the Vista disc's \sources folder to the folder you created in step 1.
- Create a folder to hold the mounted install.wim image.
- Use XImage to mount the Vista image. For example, if install.wim is in the c:\vistawim folder and you want to mount it to the c:\vistamount folder, run the following command: ximage /mountrw c:\vistamount c:\vistawim\install.wim 1
- Navigate the folder to which you mounted the Vista image. This folder contains all of the folders and files that normally appear after you install Vista.
- Customize the mounted image by editing file contents, adding folders and files, and so on.
- Unmount the mounted image and save your changes by running XImage with the /unmount and /commit switches. For example, if you mounted install.wim to the c:\vistamount folder, run the following command: ximage /unmount /commit c:\vistamount
- Use System Image Manager to customize the Vista configuration and create the unattend.xml answer file.
- Install Vista on a reference computer using the image you created earlier and the unattend.xml file.
- Install the applications you want to include as part of the client desktop, along with any patches and drivers required by those applications.
- Capture the desktop volume into a WIM file by booting to Windows PE, invoking the command line (Shift+F10), and running XImage from there. For example, the following command captures drive C: to a file named myinstall.wim: ximage /capture d: c:\images\myinstall.wim
- Copy the image to a network share (or a distributable medium, such as a DVD disc).
- Use the final image to install Vista on the client computers.