Share via


Single WIM Deployment of Windows XP Professional and Tablet PC Edition (and Other Operating Systems)

  • Update 2009-07-17: Corrected some errors in the application settings in the Extracting the Sysprep Files section that occured because I did not make all necessary changes after doing a copy/paste.
  • Update 2009-12-29: Added MDT 2010 version of ZTIBackupCustom.wsf to the download.  This file is named ZTIBackupCustom_MDT2010.wsf in the Zip file download.  Rename to ZTIBackupCustom.wsf before using it with MDT 2010.  Thanks to Deployment Guy Dave Hornbaker for porting my customizations to create the MDT 2010 version.

 

In my post on August 3 2009, I promised in an upcoming post I would show you how to create a single WIM file that contains several XP images with a single MDT Lite Touch Task Sequence (rerun four times).  Additionally, I said that I would show you how you can deploy these images from that WIM file onto the correct target hardware using either a single MDT Lite Touch Task Sequence or a single MDT Zero Touch Task Sequence in SCCM.  Well, that day is finally here!

Image Build: MDT Setup

For building and capturing images, I prefer to use the MDT Lite Touch process over Systems Center Configuration Manager 2007.  You have more control over the process, you can have tasks with a visible UI for testing and troubleshooting, and since the Task Sequencer runs as the built-in Administrator account you can configure settings that can get propagated to Default User settings.  So the process I'm about to describe will only use MDT Lite Touch for building and capturing images into the single WIM file.  Also, everything I describe in the post was done with MDT 2008 Update 1.  Once MDT 2010 has released or is close to releasing, I’ll blog what, if any, changes are necessary.

As I described in the August 3rd post, the "Single Image" process for XP Pro/Tablet PC Edition will not be supported for Service Pack 3.  Because of this, I moved my current customer's XP deployment process back to separate images.  Since they have to support hardware that requires both types of XP ACPI HALs, this deployment process required four XP Images:

  • Windows XP Professional with ACPI Uniprocessor HAL (APIC HAL)
  • Windows XP Tablet PC Edition 2005 with ACPI Uniprocessor HAL (APIC HAL)
  • Windows XP Professional with Advanced Configuration and Power Interface (ACPI) PC HAL (PIC HAL)
  • Windows XP Tablet PC Edition 2005 with Advanced Configuration and Power Interface (ACPI) PC HAL (PIC HAL)

If you only require a subset of these images (perhaps you don’t need to support Tablet PCs or PIC hardware, etc.), you can modify the steps that follow accordingly.

Using traditional sector-based imaging tool supporting four images would require four times the disk storage and four times the WAN traffic to replicate those images around.  However, using file-based WIM images that can take advantage of "single instance storage" that allows you to store all four of these images in a single WIM file that will only be slightly larger than any single image.

All of the above images can be generated from a single MDT Task Sequence by simply running it four times on either the correct computer hardware or by using the correct XP Product Key.  Unfortunately, if you try this with MDT 2008 “out of the box”, the process will fail during the attempt to capture the second image.  This is because the MDT 2008 script that does the image capture, ZTIBackup.wsf, is hard-coded to use an image name of the format <TaskSequenceID><drive letter>Drive (e.g. XPPROSP2CDrive).  Since an image name must be unique within a WIM file, when ZTIBackup.wsf tries to append the next image with the same image name, it fails.  Therefore, to capture four image into on WIM with MDT 2008 as is you would need four identical Task Sequences.  And you would need to remember to specify the same WIM file in the deployment wizard when each Task Sequence.

So to work around this limitation, I created a custom version of ZTIBackup.wsf (with the exciting name of ZTIBackupCustom.wsf).  With this version you can specify the image name prefix (the part before <drive letter>Drive) using either a command line switch, /nameprefix, or a custom property, ImageNamePrefix.  I used this script instead of ZTIBackup.wsf in the Create WIM step in the Task Sequence.  Using only this change worked well but imposed the limitation the each run of the Task Sequence had to complete before starting the next.  Also, all the runs had to be completed in the proper order so that the image index in the WIM would come out the same each time.

To get around this limitation, I changed the BackupFile MDT property (which holds the WIM file name) for each run of the Task Sequence so that each run created a different WIM file.  I then created a script that uses imagex /export to combine all the WIM files in to a single WIM.  This allows you to run the build in any order (even all at once) and re-run those that fail if needed.

OS Installation Media

You will need to assemble and import the XP SP2-integrated media as I described in my post on August 3 2009.

CustomSettings.ini

To control what edition of XP gets install, what image name prefix gets used, what BackupFile name is used, etc. I used MAC Address sections in CustomSettings.ini.  Doing it this way requires four computers with different MAC Addresses.  (I used Hyper-V and Virtual Server virtual machine as my build machines so that I didn’t need to be bothered with CD or PXE booting physical machines, but this process will work either way.  I used Hyper-V to build the APIC HAL images and needed Virtual Server to build the PIC HAL images.)  Here is what the CustomSettings.ini looks like:

[Settings]
Priority=Default, MACAddress, Finish
Properties=MyCustomProperty, CapturedImageIndex, ImageNamePrefix, CompletionFile, BackupFile

[Default]
OSInstall=Y

OrgName=Contoso
_SMSTSORGNAME=Contoso
SLShare=%DeployRoot%\Logs

SkipAppsOnUpgrade=YES
SkipDeploymentType=YES
DeploymentType=NEWCOMPUTER
SkipComputerName=YES
;ComputerName set in MACAddress sections
SkipDomainMembership=Yes
JoinWorkgroup=Workgroup
;JoinDomain
;DomainAdmin
;DomainAdminDomain
;DomainAdminPassword
SkipUserData=yes
UserDataLocation=NETWORK
;UDDir
;UDShare
SkipComputerBackup=Yes
SkipBuild=YES
;BuildID set in MACAddress sections
SkipTaskSequence=YES
;TaskSquenceID set in MACAddress sections
SkipProductKey=YES
;ProductKey
SkipPackageDisplay=YES
;LanguagePacks
SkipLocaleSelection=Yes
UserLocale=en-us
InputLocale=en-us
KeyboardLocale=en-us
SkipTimeZone=Yes
TimeZone=35
TimeZoneName=Eastern Standard Time
SkipApplications=YES
;Applications
SkipAdminPassword=YES
AdminPassword=*
SkipCapture=YES
DoCapture=YES
ComputerBackupLocation=%DeployRoot%\Captures
SkipBitLocker=YES
;BDEDriveLetter
;BDEDriveSize
;BDEInstall
;TPMOwnerPassword
SkipSummary=YES
SkipFinalSummary=NO

[00:15:5D:11:AF:FF]
; Vista x86
BuildID=Vistax86SP1
TaskSquenceID=Vistax86SP1
CapturedImageIndex=1
ComputerName=vx86sp1%HALNAME%
WsusServer=https://MDTSERVER

[00:15:5D:11:AF:FE]
; XP Pro APIC HAL
BuildID=XPSP3
TaskSquenceID=XPSP3
CapturedImageIndex=1
ComputerName=xppro%HALNAME%
ProductKey=11111-22222-33333-44444-55555
WsusServer=https://MDTSERVER

[00:15:5D:11:AF:FD]
; XP Tablet APIC HAL
BuildID=XPSP3
TaskSquenceID=XPSP3
CapturedImageIndex=2
ComputerName=xptab%HALNAME%
ProductKey=AAAAA-BBBBB-CCCCC-DDDDD-EEEEE
WsusServer=https://MDTSERVER

[00:03:FF:64:17:41]
; XP Pro PIC HAL
BuildID=XPSP3
TaskSquenceID=XPSP3
CapturedImageIndex=3
ComputerName=xppro%HALNAME%
ProductKey=11111-22222-33333-44444-55555
WsusServer=https://MDTSERVER

[00:03:FF:64:17:42]
; XP Tablet PIC HAL
BuildID=XPSP3
TaskSquenceID=XPSP3
CapturedImageIndex=4
ComputerName=xptab%HALNAME%
ProductKey=AAAAA-BBBBB-CCCCC-DDDDD-EEEEE
WsusServer=https://MDTSERVER

[Finish]
BackupFile=%TASKSEQUENCEID%_%CapturedImageIndex%.wim
ImageNamePrefix=%TASKSEQUENCEID%.%CapturedImageIndex%.%TASKSEQUENCEVERSION%_
CompletionFile=%TASKSEQUENCEID%.%CapturedImageIndex%.txt

The edition of XP (Professional or Tablet PC Edition 2005) that gets install is controlled by using the correct Pro or Tablet Product Key.  (In this sample 11111-22222-33333-44444-55555 represents the XP Pro product key and AAAAA-BBBBB-CCCCC-DDDDD-EEEEE represents the XP Tablet PC Edition product key.)  The BackupFile name is constructed from the TaskSquenceID and the custom property CapturedImageIndex.  So for example the BackupFile name for the XP Pro APIC HAL image would be XPSP3_1.wim.  The prefix for the image name within the WIM the TaskSquenceID, the custom property CapturedImageIndex, and the TASKSEQUENCEVERSION.  For the the XP Pro APIC HAL image, the ImageNamePrefix would be something like XPSP3.1.05.

Image Build: Task Sequence Details

Installing XP Service Pack 3

As I stated in my post on August 3 2009, the only way to create a supported installation of Windows XP Tablet PC Edition 2005 Service Pack 3 is to first install Tablet PC Edition from Service Pack 2 media and then install the Service Pack 3 Update.  So to be consistent, the task sequence creates all the XP images by first installing from SP 2 media and installing the SP 3 Update as an Application in the Custom Tasks group.

I did this by download the Windows XP Service Pack 3 Update from here: https://www.microsoft.com/downloads/details.aspx?FamilyId=5B33B5A8-5E76-401F-BE08-1E1555D4F3D4&displaylang=en. I extracted the contents of the update to a temporary folder with the following command:

WindowsXP-KB936929-SP3-x86-ENU.exe /x:<temporary folder path>

Then I used the temporary folder to import the extracted Service Pack 3 Update as an Application in MDT with the following settings:

Folder name: Microsoft Windows XP Service Pack 3 Update
Name: Windows XP Service Pack 3 Update
Version: 1.0
Publisher: Microsoft
Language: en-US
Source: .\Applications\Microsoft Windows XP Service Pack 3 Update
CommandLine: Update.exe /passive /norestart /n
WorkingDirectory: .\Applications\Microsoft Windows XP Service Pack 3 Update\i386\update

Updating the \Windows\Source folder

MDT copies the XP installation source files into the %windir%\Source folder so that it is available if an optional component needs to be installed later.  Unfortunately, since you are installing from SP 2 media and installing the SP 3 Update later the %windir%\Source folder will be at SP2 but the installed OS will be at SP3.  To fix this you have to add step to the Task Sequence to update the %windir%\Source folder with the SP3-level installation source files.

To do this, create a temporary folder.  Copy ZTIUtility.wsf from the MDT Scripts folder and the custom scripts LTI-ReplaceWindowsSource.wsf and LTI-CopySysprepFiles.wsf (in the ZIP attachment below) into this folder.  Create a subfolder of the temporary folder called Source.  Copy the contents of the SP3-level integrated media or slipstreamed version of the XP Pro installation CD files into the Source folder (copy all files/folders from the CD especially the Support folder, not just the i386 folder).  The folder should look similar to this:

Media

Import this folder as an Application with source files with the following settings:

Folder name: Windows XP Professional Service Pack 3 Integreted Media
Name: Windows XP Professional Service Pack 3 Integreted Media
Version: 1.0
Publisher: Microsoft
Language: en-US
Source: .\Applications\Windows XP Professional Service Pack 3 Integreted Media
CommandLine: cscript.exe LTI-ReplaceWindowsSource.wsf
WorkingDirectory: .\Applications\Windows XP Professional Service Pack 3 Integreted Media

Add this as an Install Application step in the Custom Tasks group.

If you are going to create your media for this step by slipstreaming SP3 into an SP2 installation source, this is what I recommend that you do.  Download the Windows XP Service Pack 3 - ISO-9660 CD Image File from here and burn it to a CD using software that can burn ISO images to CD.  (I like using ImgBurn for this but there are many others you can use.)

Copy the SP2 installation source that you imported following my instructions in the August 3, 2009 post to a temporary folder.  Delete the Dotnetfx, Support, and Valueadd folders from the temporary folder.  Replace them with the ones on the XP SP3 CD you just created.  Then use the SP3 installer (WindowsXP-KB936929-SP3-x86-ENU.exe) on the root of the CD to integrate SP3 into the temporary folder using the following command:

WindowsXP-KB936929-SP3-x86-ENU.exe /integrate:"<temporary folder path>"

Copy the resulting installation files into the Source folder in the above instructions.  Then create a Install Application step in the Custom Tasks group to “install” this as I described above.

Extracting the Sysprep Files

MDT copies the Sysprep files from the operating system folder in the Distribution folder.  Because of this, the Sysprep files copied will be the SP2 versions instead of the SP 3 versions.  Similar to the above step, we need to make sure the SP3 versions get copied instead.

Create another Application in MDT as Applications without source files or elsewhere on the network with the following settings:

Name: Windows XP Professional Service Pack 3 Sysprep Files
Version: 1.0
Publisher: Microsoft
Language: en-US
CommandLine: cscript.exe LTI-CopySysprepFiles.wsf
WorkingDirectory: %DeployRoot%\Applications\Windows XP Professional Service Pack 3 Integreted Media

Then create a Install Application step in the Custom Tasks group to “install” this.

Changing the Create WIM Step

You still need to copy ZTIBackupCustom.wsf from the attached Zip file, place it in the MDT Scripts folder, and change the command line of the Create WIM step to use it instead of ZTIBackup.wsf.

Merging the WIM files

After completing all four runs of the Task Sequence, there should be four WIM files in the \Distribution\Captures folder: XPSP3_1.wim, XPSP3_2.wim, XPSP3_3.wim, and XPSP4_1.wim.  To merge them all into a new single WIM file (XPSP3.wim), I created the following CMD script (MergeXPImages.cmd) to do this.  It uses a small VBScript as well (both included in the Zip attachement).  This script is run on the MDT Server.  Be sure to change the set CAPTURES=D:\Distribution\Captures line to point to your Captures folder path.

@echo off
setlocal

call "%ProgramFiles%\Windows AIK\Tools\PETools\pesetenv.cmd"
set CAPTURES=D:\Distribution\Captures

:: Get the Last Modified date for the previous merged WIM if it exists
:: and create an environment variable
If exist "%CAPTURES%\XPSP3.wim" (
for /f "tokens=*" %%i in ('cscript //nologo GetFileDateInfo.vbs "%CAPTURES%\XPSP3.wim"') do set %%i
)

:: Rename previous merged WIM so as not to overwrite or merge to the previous WIM
If exist "%CAPTURES%\XPSP3.wim" rename "%CAPTURES%\XPSP3.wim" "XPSP3_%FileLastModified%.wim"

:: Merge the source WIMs into a single destination WIM
call :MERGEIMAGE "%CAPTURES%\XPSP3_1.wim" "%CAPTURES%\XPSP3.wim"
call :MERGEIMAGE "%CAPTURES%\XPSP3_2.wim" "%CAPTURES%\XPSP3.wim"
call :MERGEIMAGE "%CAPTURES%\XPSP3_3.wim" "%CAPTURES%\XPSP3.wim"
call :MERGEIMAGE "%CAPTURES%\XPSP3_4.wim" "%CAPTURES%\XPSP3.wim"

goto :EOF

:MERGEIMAGE

    for /f "delims=<> tokens=2,3*" %%i in ('imagex /info "%~1" 1') do set %%i=%%j
imagex /export "%~1" 1 "%~2" %NAME%
imagex /info "%~2"

goto :EOF

Deploying the XP Multi-image WIM

So now that you have this multi-mage WIM file, how do you make sure that the correct image gets applied in the deployment Task Sequence?  The steps are different depending on whether you are deploying with MDT Lite Touch Installation or with System Center Configuration Manager 2007 with MDT Integration.  You must use MDT Integration and an MDT Task sequence in ConfigMgr so that the Gather step will run.

In both cases you will need to make the changes to CustomSettings.ini and use ZTI-DetectHardwareExit.vbs as shown in the Edit CustomSettings.ini for Detecting Tablet PC Hardware section of my post on August 3 2009.  Using this multi-image WIM requires that the IsTablet variable is set correctly to True or False.

System Center Configuration Manager 2007

If you are deploying with System Center Configuration Manager, the setup is very straight forward.  Import the WIM files as an Operating System Image Package.  In your Task Sequence you will now need to have four Apply Operating System Image steps instead of one.  Give each a unique step name like Apply OS – XP Pro APIC HAL to avoid confusion as to why there are four.  For all of them you will check Apply operating system from captured image and select the Image package you just created.  Then for each one you will select a different Image number (1, 2, 3, or 4).  Finally you will set conditions on the Options tab on each Apply Operating System Image step.  For example, the conditions for the XP Pro APIC HAL image would look like this:

Conditions

The table below shows the various settings for all the Apply Operating System Image steps.

Step Name

Image #

Conditions

Apply OS - XP Pro ACPIAPIC HAL

1

HALNAME equals ACPIAPIC and IsTablet equals FALSE

Apply OS - XP Tablet ACPIAPIC HAL

2

HALNAME equals ACPIAPIC and IsTablet equals TRUE

Apply OS - XP Pro ACPIPIC HAL

3

HALNAME equals ACPIPIC and IsTablet equals FALSE

Apply OS - XP Tablet ACPIPIC HAL

4

HALNAME equals ACPIPIC and IsTablet equals TRUE

Similarly, you should have two Apply Windows Settings steps, one with the XP Professional Product Key and one with the XP Tablet PC Edition Product Key:

Step Name

Product key

Conditions

Apply Windows Settings – XP Pro

(Windows XP Professional Volume License Key)

IsTablet equals FALSE

Apply Windows Settings - XP Tablet

(Windows XP Tablet PC Edition 2005 Volume License Key)

IsTablet equals TRUE

 
MDT 2008 Update 1

If you are using MDT Lite Touch Installation, things get a little trickier.  First import the WIM as a Operating System into MDT. After you do you will see four entries in Operating Systems like XPSP3.1.05_CDrive in "Windows XP SP3\XPSP3.wim" if you used a folder name of Windows XP SP3 during import.

When you create your deployment Task Sequence select the one that starts with XPSP3.1 as the operating system to install.  This will be the XP Pro APIC HAL image which should be the one that will be installed most often.  You can only have the one Install Operating System step in an MDT Task sequence.

When you import a WIM as an Operating System in the Deployment Workbench it creates one or more entries in \Distribution\Control\OperatingSystems.xml.  It will create one entry for each image in the WIM files.  Below is an example of the entries in OperatingSystems.xml for my multi-image XP WIM file

<os guid="{e22d5b4a-1d2f-4c73-860a-ced219bb8c09}">
<Name>XPSP3.1.05_CDrive in "Windows XP SP3\XPSP3.wim"</Name>
<Description>
</Description>
<Platform>x86</Platform>
<Build>5.1.2600.5512</Build>
<Type>Windows XP</Type>
<Source>.\Operating Systems\Windows XP SP3</Source>
<IncludesSetup>False</IncludesSetup>
<SMSImage>False</SMSImage>
<ImageFile>.\Operating Systems\Windows XP SP3\XPSP3.wim</ImageFile>
<ImageIndex>1</ImageIndex>
<ImageName>XPSP3.1.05_CDrive</ImageName>
<Flags>
</Flags>
<HAL>acpiapic_up</HAL>
<Size>3003</Size>
</os>
<os guid="{1c47ea5f-73cd-44f2-a0a6-37583ac9b774}">
<Name>XPSP3.2.05_CDrive in "Windows XP SP3\XPSP3.wim"</Name>
<Description>
</Description>
<Platform>x86</Platform>
<Build>5.1.2600.5512</Build>
<Type>Windows XP</Type>
<Source>.\Operating Systems\Windows XP SP3</Source>
<IncludesSetup>False</IncludesSetup>
<SMSImage>False</SMSImage>
<ImageFile>.\Operating Systems\Windows XP SP3\XPSP3.wim</ImageFile>
<ImageIndex>2</ImageIndex>
<ImageName>XPSP3.2.05_CDrive</ImageName>
<Flags>
</Flags>
<HAL>acpiapic_up</HAL>
<Size>3236</Size>
</os>
<os guid="{61c15f32-1f9f-4c64-806a-202eaccac425}">
<Name>XPSP3.3.05_CDrive in "Windows XP SP3\XPSP3.wim"</Name>
<Description>
</Description>
<Platform>x86</Platform>
<Build>5.1.2600.5512</Build>
<Type>Windows XP</Type>
<Source>.\Operating Systems\Windows XP SP3</Source>
<IncludesSetup>False</IncludesSetup>
<SMSImage>False</SMSImage>
<ImageFile>.\Operating Systems\Windows XP SP3\XPSP3.wim</ImageFile>
<ImageIndex>3</ImageIndex>
<ImageName>XPSP3.3.05_CDrive</ImageName>
<Flags>
</Flags>
<HAL>acpipic_up</HAL>
<Size>3051</Size>
</os>
<os guid="{a8f8689f-ed34-4595-a2f8-02ef98832979}">
<Name>XPSP3.4.05_CDrive in "Windows XP SP3\XPSP3.wim"</Name>
<Description>
</Description>
<Platform>x86</Platform>
<Build>5.1.2600.5512</Build>
<Type>Windows XP</Type>
<Source>.\Operating Systems\Windows XP SP3</Source>
<IncludesSetup>False</IncludesSetup>
<SMSImage>False</SMSImage>
<ImageFile>.\Operating Systems\Windows XP SP3\XPSP3.wim</ImageFile>
<ImageIndex>4</ImageIndex>
<ImageName>XPSP3.4.05_CDrive</ImageName>
<Flags>
</Flags>
<HAL>acpipic_up</HAL>
<Size>3284</Size>
</os>

You will notice that each entry is assigned a unique GUID.  This is what MDT uses to track what OS to install when you select an OS in the Install Operating System step.  Unfortunately, MDT takes the GUID from the entry selected in the Install Operating System step and sets a global Task Sequence variable called OSGUID with the value.  This means that to change what OS gets installed within the Task Sequence, you have to override the OSGUID value with the GUID for the OS you want to install.  You also need to override the variable IMAGEINDEX as well.  To do this you need to create a series of Set Task Sequence Variable steps to override both variables using conditions similar to those on the ConfigMgr steps.  Below is a table showing the Set Task Sequence Variable steps for my sample above that should immediately precede the Install Operating System step and their conditions.  There should be no conditions on the Install Operating System step.

Step Name

TS Variable

Value

Conditions

Set OSGUID - XP Tablet ACPIAPIC HAL

OSGUID

{1c47ea5f-73cd-44f2-a0a6-37583ac9b774}

HALNAME equals ACPIAPIC and IsTablet equals TRUE

Set IMAGEINDEX - XP Tablet ACPIAPIC HAL

IMAGEINDEX

2

HALNAME equals ACPIAPIC and IsTablet equals TRUE

Set OSGUID - XP Pro ACPIPIC HAL

OSGUID

{61c15f32-1f9f-4c64-806a-202eaccac425}

HALNAME equals ACPIPIC and IsTablet equals FALSE

Set IMAGEINDEX - XP Pro ACPIPIC HAL

IMAGEINDEX

3

HALNAME equals ACPIPIC and IsTablet equals FALSE

Set OSGUID - XP Tablet ACPIPIC HAL

OSGUID

{a8f8689f-ed34-4595-a2f8-02ef98832979}

HALNAME equals ACPIPIC and IsTablet equals TRUE

Set IMAGEINDEX - XP Tablet ACPIPIC HAL

IMAGEINDEX

4

HALNAME equals ACPIPIC and IsTablet equals TRUE

You will also need to set the ProductKey property to either the XP Pro or XP Tablet key depending on whether IsTablet equals FALSE or TRUE respectively.  This can be done using conditioned Set Task Sequence Variable steps or using CustomSettings.ini by adding sections like the ones shown below:

[Settings]
Priority=IsTabletCheck, ByTabletType, Default
Properties=MyCustomProperty, TabletPnpIds, IsTablet, XPTabletProductKey

[IsTabletCheck]
TabletPnpIds=ACPI\WACF004,ACPI\WACF008,ACPI\MAI3310,ACPI\FUJ02E5
UserExit=ZTI-DetectHardwareExit.vbs
IsTablet=#DetectDevices("%TabletPnpIds%")#

[ByTabletType]
Subsection=Tablet-%IsTablet%

[Tablet-True]
ProductKey=AAAAA-BBBBB-CCCCC-DDDDD-EEEEE
OSInstall=Y

[Tablet-False]
ProductKey=11111-22222-33333-44444-55555

OSInstall=Y

[Tablet-Error]
OSInstall=N

[Default]

where 11111-22222-33333-44444-55555 represents the XP Pro product key and AAAAA-BBBBB-CCCCC-DDDDD-EEEEE represents the XP Tablet PC Edition product key.

Creating Multi-image WIM files with Other Operating Systems

Creating and deploying multi-image WIM files can be done with other operating systems.  For example, you could use a single task sequence to create an custom WIM that contains custom images of Windows Vista Business and Windows Vista Enterprise.  Or create a single WIM file with Windows Server 2008 Standard, Enterprise, and Datacenter.  (You would generally only include images of the same OS and the same architecture with a single WIM.  You would not benefit from single instance storage if you tried to include x86 and x64 images in the same WIM.)  To do this, the image build process would have to be done more like the MDT 2008 deployment method described above.  What is unique about XP is all the images were created for the same source “Operating System” (the XP SP2 media).  For including multiple editions of other operating systems in a single WIM requires using multiple MDT “Operating Systems” in the Task Sequence.  This requires overriding the OSGUID and IMAGEINDEX like the process above except you would have to condition off another variable.

For example, let’s say you wanted to create a WIM that contains custom images of Windows Vista Business and Windows Vista Enterprise.  You could set a custom variable call Edition like this:

[Settings]
Priority=Default, MACAddress, Finish
Properties=MyCustomProperty, CapturedImageIndex, ImageNamePrefix, CompletionFile, BackupFile, Edition

[Default]
OSInstall=Y

.
.
.

[00:15:5D:11:AF:FF]
; Vista Business x86
BuildID=Vistax86SP1
TaskSquenceID=Vistax86SP1
Edition=Business
CapturedImageIndex=1
ComputerName=vbx86sp1
WsusServer=https://MDTSERVER

[00:15:5D:11:AF:FE]
; Vista Enterprise x86
BuildID=Vistax86SP1
TaskSquenceID=Vistax86SP1
Edition=Enterprise
CapturedImageIndex=2
ComputerName=vex86sp1
WsusServer=https://MDTSERVER

.
.
.

In the image build Task Sequence you would select the most often deployed OS (let’s say Windows Vista Enterprise for example) in the Install Operating System step.  You would then create Set Task Sequence Variable steps that override the OSGUID and IMAGEINDEX with the ones for Windows Vista Business with a condition of Edition equals Business.

For deploying the resulting WIM you would do similar conditioned steps for ConfigMgr and MDT but you would have to again use a custom variable for the condition that perhaps get set per computer, location, or role in CustomSettings.ini or the MDT database.

Disclaimer: The information on this site is provided "AS IS" with no warranties, confers no rights, and is not supported by the authors or Microsoft Corporation. Use of included script samples are subject to the terms specified in the Terms of Use .

 

This post was contributed by Michael Murgolo, a Senior Consultant with Microsoft Services - U.S. East Region.

XP_Single_WIM_2009-12-29.zip

Comments

  • Anonymous
    January 01, 2003
    Mike, I'm a little confused in your section called "Updating the WindowsSource" - I understand the need to have updated copies of the sysprep/deployment files and to have an updated Source directory, but why not just apply the directory using the /integrate: option to the c:WindowsSource directory directly as an application instead of having to do all that copying and shuffling around?  Is this just for the sake of having a more complete C:WindowsSource folder available on the machine than would normally be left behind by a regular MDT install? Also, your code for copying updated Sysprep files includes code for x64 architecture?  We're trying to get the SP3 files which are only relevant to the x86 architecture for XP, correct?  Or is this .wsf somehow overriding the standard sysprep 'prep' steps in the process? Thanks for the great series of articles on "single-image" processing of WinXP.  I've definitely learned some useful things from reading through them and looking through the code and .ini files. Regards, Joel

  • Anonymous
    January 01, 2003
    JoelJGarrett, I had not tried the /integrate option to update the source files.  That may work just fine for that step.  I imagine that the simple xcopy will likely be faster.  However, I needed the full SP3 media anyway so as to have the SupportTools folder at the correct SP for the Sysprep files. As far as the code for copying updated Sysprep files that includes code for x64 architecture, I lifted a lot of that from LTISysprep.wsf.  LTISysprep.wsf had this code so I didn't change it.  Simple as that. Michael Murgolo