Saturday, March 7, 2009

How to create a hardware independent sysprepped WIM image of Windows XP for deployment from Windows Deployment Services


In this post I will provide a step-by-step guide on how to create a hardware independent sysprepped WIM image of Windows XP for deployment from Windows Deployment Services.  This guide is still a draft as there are a few small changes that should be made to it as noted throughout the document with links to the bottom of the post. I have tested this guide on multiple series of HP business desktops and laptops and an old Toshiba laptop without too much trouble. Please feel free to comment on this guide as I will update it with changes as required.

1. Install Windows XP SP3 (Do not join domain).

2. Install VMware Tools.

3. Create Snapshot. Go to VM > Snapshot > Take Snapshot.

4. Setup Shared Folders. Go to VM > Settings.

0000

5. Go to Options > Select Always enabled then Click Add.

0003

6. Click Next in the Add Shared Folder Wizard.

0004

7. Click on the Browse button and select the drive you want access to then click OK.

0006

8. Click Next.

0007  

9. Click Finish.

0008  

10. Click OK.

0009  

11. Open Windows Explorer and browse to D:\SUPPORT\TOOLS (where D: is your CD/DVD drive letter).WXPP-2008-09-26-22-49-49

12. Open Deploy.cab and select all files then right click and Extract to C:\Sysprep (where C: is your system drive letter).

WXPP-2008-09-26-22-52-41 

WXPP-2008-09-26-22-54-32 

13. Open setupmgr.exe then Click Next.

WXPP-2008-09-26-22-57-22 

14. Click Next.

WXPP-2008-09-26-22-59-13 

15. Select Sysprep setup.

WXPP-2008-09-26-22-59-52

16. Click Next.

WXPP-2008-09-26-23-00-15

17. Select Yes, fully automate the installation.

WXPP-2008-09-26-23-01-24

18. Enter Name and Organization details then Click Next.

WXPP-2008-09-26-23-02-52

19. Click Next.

WXPP-2008-09-26-23-03-46

20. Select Time zone then click Next.

WXPP-2008-09-26-23-04-16

21. Enter Product Key then click Next (Product Key has been hidden in screen shot).

WXPP-2008-09-26-23-06-27

22. Click Next.

WXPP-2008-09-26-23-09-08

23. Enter Administrator password then click Next.

WXPP-2008-09-26-23-10-35 

24. Click Next.

WXPP-2008-09-26-23-11-55

25. Select Domain, Enter Domain name, Check Create a computer account in the domain, Enter User name and Password for a User Account which has been delegated the right to join computers to domain with the restriction of joining 10 computers disabled. Click Next.

WXPP-2008-09-26-23-16-12 

26. Click Next.

WXPP-2008-09-26-23-18-39

27. Click Next.

WXPP-2008-09-26-23-20-23

28. Select Languages you want to support then click Next.

WXPP-2008-09-26-23-21-54

29. Click Next.

WXPP-2008-09-26-23-22-54 

30. Add any commands that you want to run the first time a user logs on then click Next.

WXPP-2008-09-26-23-25-58 

31. Add any commands that you want to run at the end of unattended Setup such as a batch/script file to install/update software.

WXPP-2008-09-26-23-28-17 

32. Enter an Identification String such as the current date/revision number to help identify this Sysprep image to help in identifying which Sysprep image is installed on a particular computer in the future then click Finish.

 WXPP-2008-09-26-23-32-49

33. Click OK, Wait a few moments and then Go to File > Exit.

WXPP-2008-09-26-23-33-38

34. Open Sysprep.inf and check that it looks correct (Sensitive data has been hidden).

WXPP-2008-09-26-23-38-32

35. Change/Add any lines in Bold to your Sysprep.inf.

;SetupMgrTag
[Unattended]
OemSkipEula=Yes
InstallFilesPath="C:\WINDOWS\Driver Cache\i386"
DriverSigningPolicy=Ignore
UpdateInstalledDrivers=Yes

[GuiUnattended]
AdminPassword="********"
EncryptedAdminPassword=NO
OEMSkipRegional=1
OEMDuplicatorstring=26/09/2008
TimeZone=260
OemSkipWelcome=1

[UserData]
ProductKey=*****-*****-*****-*****-*****
FullName="ALS"
OrgName="Australian Laboratory Services Ptd Ltd"
ComputerName=*

[RegionalSettings]
LanguageGroup=11,1

[SetupMgr]
DistFolder="C:\WINDOWS\Driver Cache\i386"
DistShare=windist

[Identification]
JoinDomain=DOMAIN
DomainAdmin=JOINDOMAIN
DomainAdminPassword=********

[Networking]
InstallDefaultComponents=Yes

- OemSkipEula=Yes - Skips EULA
- DriverSigningPolicy=Ignore - Don't prompt when installing drivers
- UpdateInstalledDrivers=Yes - Reinstall all present drivers when mini-setup starts. Very important.

In order to successfully make this setup work on any system configuration, you will have to use UpdateInstalledDrivers=Yes, which will clean the entire Device Manager, except non-PnP and HAL.

This will ensure that all VMware drivers are removed and your setup will install the proper drivers for the system it is being executed on.

36. Browse to C:\Windows\ (where C:\Windows is where Windows was installed to) and right click on the Driver Cache folder in the left pane and select Properties, click Advanced, Check Compress contents to save disk space, click Ok, click OK then Click Ok again.

WXPP-2008-09-27-00-40-49

37. Browse to \\.host\Shared Folders\<Path to Drivers> (where <Path to Drivers> is the path to your folder of drivers. I’ve used the drivers I’ve imported into Microsoft Deployment Toolkit 2008 while creating an Lite Touch Installtion DVD. 

WXPP-2008-09-26-23-52-48

38. Copy and paste those folders to C:\Windows\Driver Cache (where C:\Windows is where Windows was installed to).

WXPP-2008-09-27-00-37-38 

39. Download the latest version of Sysprep Driver Scanner from http://www.vernalex.com/tools/spdrvscn/ or copy it from the zip file.

40. Copy and paste spdrvscn.exe to C:\Sysprep on the Virtual Machine and open.

WXPP-2008-09-27-08-04-28

41. Change Search Path to C:\Windows\Driver Cache and press Scan, Press OK to Prompt.

WXPP-2008-09-27-08-07-36

42. Press Default and Press OK to Prompt.

WXPP-2008-09-27-08-08-37

43. Press Save and click OK to Prompt.

WXPP-2008-09-27-08-10-00  

44. Click Done and OK to Prompt.

WXPP-2008-09-27-08-10-40

45. Open Sysprep.inf and add [SysprepMassStorage] to the end of the file.

46. Open a Command Prompt and type cd C:\Sysprep then type sysprep –bmsd and hit Enter.

WXPP-2008-09-27-08-16-02 

Here's a sample of what my result was:

pci\ven_1011&dev_0046&subsys_13649005=c:\windows\inf\pnpscsi.inf
pci\ven_1028&dev_0001&subsys_00011028=c:\windows\inf\pnpscsi.inf
pci\ven_1028&dev_0002&subsys_00d11028=c:\windows\inf\pnpscsi.inf
pci\ven_1028&dev_0002&subsys_00d91028=c:\windows\inf\pnpscsi.inf
pci\ven_1028&dev_0002&subsys_00021028=c:\windows\inf\pnpscsi.inf
pci\ven_1028&dev_0003&subsys_00031028=c:\windows\inf\pnpscsi.inf
pci\ven_9005&dev_00c5&subsys_00c51028=c:\windows\inf\pnpscsi.inf
pcmcia\ibm-pcmcia_portable_cd-rom_drive-84e3=c:\windows\inf\pnpscsi.inf
pcmcia\ibm-pcmcia_cd-rom_drive_cd-400-5afa=c:\windows\inf\pnpscsi.inf
pcmcia\ibm-pcmcia_portable_cd-rom_drive-84e2=c:\windows\inf\pnpscsi.inf
pcmcia\pcmcia-ide_card-3220=c:\windows\inf\pnpscsi.inf
pci\ven_13e6&dev_3603&subsys_00461014=c:\windows\inf\pnpscsi.inf
pcmcia\pcmcia-pnpide-4522=c:\windows\inf\pnpscsi.inf
pcmcia\pcmcia-pnpide-7b72=c:\windows\inf\pnpscsi.inf

As you can see, there are a lot of entries in the section. These are plug and play identifiers for mass storage drivers and their location. If it didn't insert any, your device path is invalid and you forgot to add the \WINDOWS\Inf path to the Sysprep Driver Scanner. Check it in HKLM\Software\Microsoft\Windows\CurrentVersion\DevicePath. Note that Sysprep takes ~1 second to add each entry.

47. Download MySysprep from http://www.tsaysoft.com/mysysprep/ and Extract files to C:\Sysprep in your virtual machine.

WXPP-2008-09-27-10-10-00 

48. Open MySysprep.inf and delete the ; under the [CPU] section then close and save.

WXPP-2008-09-27-10-12-03 

49. Create another Snapshot by going to VM > Snapshot > Take Snapshot. Name it 2 – Before Hal Switch.

50. Go to Start, Right click on My Computer and select Manage. Click on Device Manager, Expand Computer, Right Click on the item underneath (ACPI Uniprocessor PC), Click Update Driver.

WXPP-2008-09-27-10-18-12 

51. Select No, not this time then click Next.

WXPP-2008-09-27-10-20-57 

52. Select Install from a list or specific location (Advanced) then click Next.

WXPP-2008-09-27-10-22-15

53. Select Don’t search. I will choose the driver to install.

WXPP-2008-09-27-10-23-10

54. Select Advanced Configuration and Power Interface (ACPI) PC from the list and click Next.

WXPP-2008-09-27-10-26-14

55. Click Finish.

WXPP-2008-09-27-10-29-29 

56. Click Yes to the Prompt.

WXPP-2008-09-27-10-30-32 

57. Once restarted click Yes to the Prompt.

58. Shutdown the Virtual Machine. Once Shutdown go to VM > Settings then click on Hard Disk (IDE) then click on Utilities and then on Map…

0010

59. Uncheck Open drive in Windows Explorer after mapping then click OK.

0011

60. Open Windows PE Tools Command Prompt from your start menu by going to Start > Programs > Microsoft Windows AIK > Windows PE Tools Command Prompt.

61. Type in imagex /compress max /capture V: D:\Temp\Windows_XP_SP3.wim “Windows XP SP3 – 1 – Before Sysprep” where V: is the mapped virtual machine’s hard drive and D:\Temp\Windows XP Image.wim is the path and file name you want to save the image then hit Enter.

0013  0014 0016  

62. Once completed Open VMware Workstation and go to VM > Settings. Select Hard Disk (IDE), Click on Utilies then click Disconnect.

0017

63. Click Ok and start the virtual machine by pressing the play button up the top.

64. [T2] Install any software and configure any settings you require for your build.

65. Configure Internet Explorer’s Home page by opening the Control Panel, Clicking Switch to Classic View then opening Internet Options. Type in the address you want in the Address: text box and then click OK.

WXPP-2008-09-27-13-34-09 

66. Open Regional and Language Options. Configure the Regional Options tab as required.

WXPP-2008-09-27-13-36-04 

67. Open the Languages tab. Check Install files for complex script and right-to-left languages (including Thai). Click OK to Prompt. Click OK again. If prompted for files insert/load the Windows XP SP3 setup cd.

WXPP-2008-09-27-13-38-41

68. Click Yes to prompt[T3] .

WXPP-2008-09-27-13-40-58

69. Create another Snapshot by going to VM > Snapshot > Take Snapshot and name it 3 - Before Sysprep.

70. Browse to C:\Sysprep and open mysysprep.exe and click OK to prompt.

WXPP-2008-09-27-14-39-37

71. Check Use Mini-Setup and then click Reseal.

WXPP-2008-09-27-14-40-01 

72. Click OK to prompt.

WXPP-2008-09-27-14-41-08 

73. Wait for the virtual machine to shutdown.

WXPP-2008-09-27-14-41-42 

74. Map virtual machine hard drive for imaging. Go to VM > Settings, Click on Hard Disk (IDE), Click on Utilities then click Map…

0018  

75. Click OK then click OK again.

0019  

76. Open Windows PE Tools Command Prompt from your start menu by going to Start > Programs > Microsoft Windows AIK > Windows PE Tools Command Prompt.

77. Type in imagex /compress max /capture V: D:\Temp\Windows_XP_SP3.wim “Windows XP SP3 – 2 – Before Sysprep 2[T4] ” where V: is the mapped virtual machine’s hard drive and D:\Temp\Windows XP Image.wim is the path and file name you want to save the image then hit Enter. [T5]

0020 0021

0022  

78. PXE Boot from network from WDS server to Capture Image. Hit F12 when booting to netwook boot.

WXPP-2008-09-27-17-47-54

79. Select Capture Windows XP Image and hit Enter.

WXPP-2008-09-27-17-50-29 

80. Wait for Windows PE to load.

WXPP-2008-09-27-17-50-40

81. Click Next.

WXPP-2008-09-27-17-52-17 

82. Select C:\ as the volume to capture and enter Windows XP SP3 for Image Name: and Image Description:

WXPP-2008-09-27-17-52-41 

83. Click Browse, Type Windows XP SP3 for the File name and click Save.[T6] [T7]

WXPP-2008-09-27-18-30-32 WXPP-2008-09-27-18-31-35

84. Click Finish.

85. Wait for the Image to finish capturing.

WXPP-2008-09-27-18-33-54 

86. Click Close once complete.

WXPP-2008-09-27-19-11-47


[T2]Skip steps since capture to WDS server works now by adding NIC drivers to capture boot image.

[T3]Edited Sysprep.inf to prompt for Regional and Language Options. Have to redo documentation.

[T4]Before Sysprep??!! Should be after Sysprep!!

[T5]Skip steps since capture to WDS server works now by adding NIC drivers to capture boot image.

[T6]Missed screenshot

[T7]Skip step and redo uploading image directly to WDS server

21 comments:

Ashley Hollis said...

Just thought I would let you guys know that I have created a thread in a forum in case you want to comment or want more information.

http://www.msfn.org/board/index.php?showtopic=130866

Anonymous said...

So sorry for my enplish, your post form wds is excelent. go on :) !!!

Kishore said...

Dear Ashley,
Thanks for a awesome\Great\execellent post. I am searching for this type of post for a long time. You have done a great job. Once again thanks.

Please give me a solution to restore a image created by norton ghost to C drive in a single click. I dont want to search for drives for images. If you have any idea Please publish

Thank You
kishore Kumar

Anonymous said...

Amazing post that saved me alot of research time. I have tried several methods for making a single xp image but this one actually was the icing on the cake.

Noel @ www.noelflash.com

Martin Strobl said...

Please could you explain, why are you using the "C:\WINDOWS\Driver Cache\i386" path instead of the standard "C:\sysprep\i386" for the "InstallFilesPath" and the "DistFolder" in the SYSPREP.INF file?

Daniel Jackson said...

Just found this great post - excellent use of example images for us visual thinkers! I've been looking for a hardware-agnostic version of windows XP for our WDS servers...

John said...

Creating the image is no problem. But now restoring the image. Because we changed the HAL to acpipic no image appears when trying to restore. Do you have a solution for this?

Ashley Hollis said...

If you go to my previous blog entry http://ashleystechblog.blogspot.com/2009/02/setting-up-windows-deployment-services.html and follow Steps 78 to 81 you should be able to get it sorted. Basically you need to change e_isa_up to acpipic_up in the winpeshl.ini in the image.

Let me know if this sorts it out for ya or you need any more help.

Regards,
Ashley
Thanks,

Ashley

Unknown said...
This comment has been removed by the author.
Matt Clemens said...

Ashley,

Do you know.. is it possible to later image a machine using this image, add more software, re-seal, and maintain hardware independence? OR Can you add software to the image through winpe much like you do with driver injection?

Anonymous said...

Hi regarding to the step 37
Can you please explain a bit further how you imported the drivers using MDT 2008? Thanks for the Tutorial
Regards

Lindsay Rosenwald said...

Lindsay
Rosenwald

Unknown said...

I have been struggling to find a way to deploy one XP image to multiple PCs and this process worked great!!! After I captured the XP image with ImageX I scripted a custom winpe.wim boot file to automatically authenticate to my WDS server (net use command) clean the HDD, partition the HDD, and apply the image, then restart when finished. So far I've applied the image to multiple HP, Dell, and Lenovo computers. Thanks for this great guide. It saved me a lot of time.

Anonymous said...

Heya i am for the first time here. I found this board and I
find It truly useful & it helped me out much. I hope to give
something back and help others like you aided me.
my website: Posted by My Industrial Injury Claims.com

Saied said...

Great Instructions.
will this work with ACHI controlers?
and where did you get the drivers?
can you send a link where I can download drivers ?
thanks

Freddie said...

Great instructions, I really enjoyed the read and hope to get WDS up and running for XP with this guide. I know this is long after your post but is there a possibility to still get this post in a word document. I am more of a book person and following the steps you outline, would made easier. Your help would be greatly appreciated.

Unknown said...

Ashley, THANK YOU for an amazing post Haven't yet worked all the way through it, but I am loving it.

Bhansen01 do you think that you could share your boot image?

Trevor "TeC" Christian said...

Thanks much for your time and effort put into the detailed instructions you provided! They were a immense help.

Anonymous said...

Will you clarify step #38?

Anonymous said...

Sorry, I meant #37. Where did you get all those drivers from? And are they necessary?

Unknown said...

For Computer, Tablets, PC, Laptop, Mobile, Gaming, Hardware and Installation Services, Contact easytechy

Easytechy Hardware Installation Services | Las Vegas, Nevada - 89146 | Tech Support Number: 1-855-859-0057