Education Specialists

School-64For over 10 years, we have specialised in overcoming the unique demands facing the management and use of ICT in the Education sector.

Small Business Solutions

People-64Whatever the size or complexity of your office and operations, we can develop a solution to maximise the efficiency and potential of your IT investments.

Professional Design

paint-64We specialise in creating modern, clear and user friendly web solutions to maximise the marketing potential of your organisation.

Windows Deployment Services (WDS)

Part 1. Creating a HAL independent Windows XP base image

. Posted in Windows Deployment Services (WDS)

This section will explain how to build a generic HAL independent Windows XP base image that can be deployed to all of your hardware models (desktops and laptops).

1. Perform a clean installation of Windows XP.

There are a number of options to choose from when deciding on the appropriate hardware to use for the base image:

  • The slowest model of PC (easiest HAL modification when deploying to a mix of older and newer hardware - although isn't an issue if you downgrade the HAL type as detailed below);
  • The most common model of PC (least amount of post deployment tweaking);
  • A VMWare installation (most flexible and future proofed).

This guide will focus on using the first option as I haven't experimented in any depth with VMWare yet.

Perform a clean installation of Windows XP (preferably using Volume License media rather than retail or OEM media) on a formatted NTFS partition.  DO NOT join a domain during Windows setup - SYSPREP will take care of this during deployment - and do not set an Administrator password or SYSPREP will not be able to change it if necessary later on.  When prompted for usernames, it doesn't matter what name you enter - this account will be used to create the Default User profile but will be deleted before capturing the image.

Once installed, log on to Windows XP as the true Administrator account by holding down Ctrl + Alt and pressing Del twice.  Enter 'Administrator' as the username and leave the password field blank as you didn't set one up during initial installation.  Only install vendor / manufacturer specific drivers for hardware that Windows cannot detect and install automatically and make use of (search for) the .inf files rather than simply using the setup programs.

Before installing any further applications it is a good idea to make a backup image.  This will save time if you have to begin from scratch.  It can also be used to to test the sysprep/mysysprep process as this image will come in at <1Gb as opposed to a possible >10Gb and will therefore capture and deploy significantly faster!

2. Change the HAL to ACPI.

If you have chosen to use your most common model of PC to build your base image, and you plan on deploying to older machines that utilise a lower / older HAL type, you will need to change the HAL type before running sysprep and capturing the image. 

  • Open the I386 folder located on your XP SP2 cd.
  • Open the SP2.CAB.
  • Extract halacpi.dll (not halaacpi.dll) to a temporary folder and rename it to hal.dll.
  • Extract ntkrnlpa.exe and ntoskrnl.exe to the same temporary folder.
  • Move all three files to the system32 folder under your windows directory.
  • Say yes to replace files.
  • Reboot.

3. Make any required alterations to the default Windows settings such as those below:

  • Set desktop background to (None)
  • Set screensaver to (None)
  • Enable ClearType fonts
  • Enable 'Show shadows under menus'
  • Enable 'Show window contents while dragging'
  • Turn off System Restore (this is configurable using GPOs)
  • Enable 'Show Quick Launch'
  • Enable 'Lock the taskbar' (this is configurable using GPOs)
  • Enable the 'Classic start menu' (this is configurable using GPOs)
  • Disable 'Hide extensions for known file types'

4. Install any additional software packages and tools.

It is usually a good idea to copy any CD/DVDs onto the server and install the sofware from there.  This way, if software requires any additional setup files post deployment, they should automatically look to the network/server location which avoids the need to dig out the correct CD/DVDs and visit the individual machines.

You should also perform an administrative installation of MS Office to the server and configure a custom installation, using a Windows Installer Transform (MST), tailored to your particular organisation.  This allows user settings, such as those for Outlook (e.g. POP3, SMTP and Exchange) to be predefined when a user first logs on.

You may also want to install extra software and tools such as:

  • .NET v1.1, v2 and v3
  • Flash & Shockwave players
  • Java Runtime
  • Real Player
  • Quicktime
  • IE7 & MP11
  • Acrobat Reader
  • CutePDF Writer/Printer
  • UltraVNC
  • PhotoStory
  • SMARTBoard Software
  • etc

4. Setup the Start Menu and Desktop shortcuts

If you are going to make use of redirected Start Menus through GPOs, remove (e.g. 'Cut') all program shortcuts from Start Menu folders (e.g. 'C:\Documents and Settings\Administrator\Start Menu', 'C:\Documents and Settings\Default User\Start Menu\Programs' and 'C:\Documents and Settings\All Users\Start Menu').  Place all the removed shortcuts into a separate folder (e.g. 'C:\Shortcuts') and then copy or move this folder to a suitable location on the server in order to setup redirected folders later on.

 4. Connect to Microsoft Update.

Install all updates via the 'Custom' option in 'Microsoft Update'.

5. Setup the Default User profile.

Restart the computer and log in using the 'normal' username that you created when installing Windows XP from the CD.  Setup this account the way you would like all users to see and use when they first log on e.g. Desktop theme, icon placement, Quick Launch icons.  Refer back to the list in step 3 for other possibilities.

Open any programs that may need to be run once before settings are established such as IE7 and MP11.  DO NOT run software that requires user registration such as MS Office.

When settings are applied to your specifications, restart the computer and log back on as the Administrator (Ctrl+Alt Del, Del).  In order to see the original 'Default User' profile in C:\Documents and Settings', you must have enabled 'Show hidden files and folders' in the view tab of 'Folder Options'.  Rename the original 'Default User' profile folder to 'Default User_orig' for example.  Copy and paste the new profile (which will be named the same as the username it was created with) into 'Documents and Settings' and rename it 'Default User'.  Make the top level folder hidden.

In the Computer Managament console (Control Panel > Administrative Tools), expand 'Local Users & Groups' and then select the 'Users' folder.  Find and delete the username that you used to create the new profile.

A new 'feature' of the SP2 version of SYSPREP means that the Administrator profile will be copied over the newly configured 'Default User' profile.  To avoid this issue download and install hotfix KB887816.

6. Download and setup a driver repository.

Download the vendor specific drivers for all your different machines.  Create a 'Drivers' folder in the root of your system drive (e.g. C:\Drivers).  Extract the driver files to a temporary location and then copy into an appropriate folder structure like the one shown below:

C:\Drivers\Dell\D505\Video
C:\Drivers\Dell\D505\Audio
C:\Drivers\Dell\D505\Chipset
C:\Drivers\Dell\D505\Modem
C:\Drivers\Dell\D505\NIC
C:\Drivers\Dell\D505\Wireless

C:\Drivers\Dell\GX520\Video
C:\Drivers\Dell\GX520\Audio
C:\Drivers\Dell\GX520\Chipset
C:\Drivers\Dell\GX520\Modem
C:\Drivers\Dell\GX520\NIC

...and so on.

You will only usually need the the .inf, .sys and .cat files although it may be safer to keep and merge all files for a paticular driver into the one folder.

You may also need to apply these hotfixes in order to prevent mini-setup hanging due to video driver issues:

7. Download and configure SYSPREP.

Download the latest version (KB838080) and extract 'deploy.cab' (by double clicking) to 'C:\sysprep' on your base image machine.  You actually only need a few of the files from 'deploy.cab' but I'm not entirely sure which ones so include all just in case!

You also need to have a 'sysprep.inf' file in the 'c:\sysprep' folder that configures how 'Mini-Setup' will run.  You can create your own 'sysprep.inf' by running 'c:\sysprep\setupmgr.exe'.  It will ask you a series of questions related to what you want sysprep to do.  Below is an example of the generated file with some documented modifications:

;SetupMgrTag
[Unattended]
;This tell sysprep to do an unattended setup.
    unattendedMode=FullUnattended
    OemSkipEula=Yes
;OemPnPDrivers refers to the "C:\Drivers\..." folder structure you created earlier.
;This string is limited to 4096 characters and must be on one line.
    OemPnPDriversPath=Drivers\Dell\755\Chipset;Drivers\Dell\755\Audio;Drivers\Dell\755\Modem;Drivers\Dell\755\Video;Drivers\Dell\755\NIC;Drivers\Dell\D505\Chipset;Drivers\Dell\D505\Audio;Drivers\Dell\D505\Modem;Drivers\Dell\D505\Video;Drivers\Dell\D505\NIC;Drivers\Dell\D510\Chipset;Drivers\Dell\D510\Audio;Drivers\Dell\D510\Modem;Drivers\Dell\D510\Video;Drivers\Dell\D510\NIC;Drivers\Dell\D510\Wireless;Drivers\Dell\D520\Chipset;Drivers\Dell\D520\Audio;Drivers\Dell\D520\Modem;Drivers\Dell\D520\Video;Drivers\Dell\D520\NIC;Drivers\Dell\D520\Wireless;Drivers\Dell\GX520\Chipset;Drivers\Dell\GX520\Audio;Drivers\Dell\GX520\Modem;Drivers\Dell\GX520\Video;Drivers\Dell\GX520\NIC
;InstallFilesPath refers to the root in which you store everything... drivers etc...
    InstallFilesPath=C:\
    ConfirmHardware=No
    OverwriteOemFilesOnupgrade=No
    DriverSigningPolicy=Ignore
    oempreinstall=yes
    updateInstalledDrivers=Yes

[GuiUnattended]
;Set the desired local admin password here.
    AdminPassword="******"
    EncryptedAdminPassword=No    
;Set the number of times to automatically logon on (useful as some drivers will need to reboot before successful installation).
    AutoLogon=Yes
    AutoLogonCount=2
    OEMSkipRegional=1
;This string is read and entered into the 'HKLM\SYSTEM\Setup' registry key.
    OEMDuplicatorstring=XPImage_Jan08
    TimeZone=85
    OemSkipWelcome=1

[UserData]
;Put your Product Key here.
    ProductKey=*****-*****-*****-*****-*****
;Ensure a space is used between the quotes to avoid needing to enter a username.
    FullName=" "
    OrgName="My Organisation"
;This is a special added feature that comes with MYSYSPREP - more details here.
;You can have your PC named by its serial number (%SerialNo%) or assest tag (%AssetTag%, for example, as shown below. 
    ;ComputerName=Something%SerialNo%
;If left blank, the user will be prompted for a computer name during Mini-Setup.
    ComputerName=

[Display]
    BitsPerPel=32
    Xresolution=1024
    YResolution=768
    ;Vrefresh=60

[RegionalSettings]
    LanguageGroup=1
    SystemLocale=00000809
    UserLocale=00000809
    InputLocale=0809:00000809

[SetupMgr]
    DistFolder=C:\sysprep\i386
    DistShare=windist

[Identification]
;Here you can have the computer join the domain.
;Enter the crudentials of a user that has rights to do this.
 
    JoinDomain=domain   
    DomainAdmin=domain\username
    DomainAdminPassword=******

[Networking]
    InstallDefaultComponents=Yes [Sysprep]
;If you know the required Mass Storage (IDE/SATA etc) drivers for your hardware, you do not need to have SYSPREP build the generic list.  However, for the greatest compatibility across a variety of hardware, changing this option to 'Yes' will populate the following section with a huge list of the drivers known to Windows XP SP2.
;Changing this option to 'Yes' will also add around 30mins to the SYSPREP process.

    BuildMassStorageSection=No

[SysprepMassStorage]
    ;Standard Primary and Secondary IDE Channels
    Primary_IDE_Channel=C:\Windows\inf\mshdc.inf
    Secondary_IDE_Channel=C:\Windows\inf\mshdc.inf 

    ;Standard Dual Channel PCI IDE Controller
    pci\cc_0101=C:\Windows\inf\mshdc.inf 

    ;Generic SCSI/RAID Host Controller
    GEN_SCSIADAPTER=C:\Windows\inf\pnpscsi.inf
    *PNPA000=C:\Windows\inf\pnpscsi.inf 

    ;Dell Specific
;Newer hardware will require specific drivers to be configured.
    pci\ven_8086&dev_2920=C:\Drivers\Dell\755\Chipset\ich9ide.inf
    pci\ven_8086&dev_2926=C:\Drivers\Dell\755\Chipset\ich9ide.inf
    pci\ven_8086&dev_2930=C:\Drivers\Dell\755\Chipset\ich9smb.inf
    pci\ven_8086&dev_27df=C:\Drivers\Dell\GX520\Chipset\ich7ide.inf
    pci\ven_8086&dev_27c0=C:\Drivers\Dell\GX520\Chipset\ich7ide.inf
    pci\ven_8086&dev_27c4=C:\Drivers\Dell\D520\Chipset\ich7ide.inf
    pci\ven_8086&dev_2653=C:\Drivers\Dell\D510\Chipset\ich6ide.inf
    pci\ven_8086&dev_24ca=C:\Drivers\Dell\D505\Chipset\ich4ide.inf
    PCI\VEN_8086&DEV_5029=C:\Drivers\Dell\755\Chipset\iaahci.inf
    PCI\VEN_8086&DEV_2922&CC_0106=C:\Drivers\Dell\755\Chipset\iaAHCI.inf
    PCI\VEN_8086&DEV_282A&CC_0104=C:\Drivers\Dell\755\Chipset\iaStor.inf
    PCI\VEN_8086&DEV_2829&CC_0106=C:\Drivers\Dell\755\Chipset\iaAHCI.inf
    PCI\VEN_8086&DEV_2822&CC_0104=C:\Drivers\Dell\755\Chipset\iaStor.inf
    PCI\VEN_8086&DEV_2821&CC_0106=C:\Drivers\Dell\755\Chipset\iaAHCI.inf
    PCI\VEN_8086&DEV_2682&CC_0104=C:\Drivers\Dell\755\Chipset\iaStor.inf
    PCI\VEN_8086&DEV_2681&CC_0106=C:\Drivers\Dell\755\Chipset\iaAHCI.inf
    PCI\VEN_8086&DEV_27C3&CC_0104=C:\Drivers\Dell\755\Chipset\iaStor.inf
    PCI\VEN_8086&DEV_27C6&CC_0104=C:\Drivers\Dell\755\Chipset\iaStor.inf
    PCI\VEN_8086&DEV_27C1&CC_0106=C:\Drivers\Dell\755\Chipset\iaAHCI.inf
    PCI\VEN_8086&DEV_27C5&CC_0106=C:\Drivers\Dell\755\Chipset\iaAHCI.inf
    PCI\VEN_8086&DEV_2653&CC_0106=C:\Drivers\Dell\755\Chipset\iaAHCI.inf
    PCI\VEN_8086&DEV_2652&CC_0106=C:\Drivers\Dell\755\Chipset\IAAHCI.INF
    PCI\VEN_8086&DEV_2821&CC_0106=C:\Drivers\Dell\755\Chipset\IAAHCI.INF
    PCI\VEN_8086&DEV_2829&CC_0106=C:\Drivers\Dell\755\Chipset\IAAHCI.INF
    PCI\VEN_8086&DEV_2652&CC_0104=C:\Drivers\Dell\755\Chipset\IASTOR.INF

8. Download and configure MySysprep.

MySysprep is a hacked version of SYSPREP that works side-by-side to add more robust features and most importantly, enables switching of the HAL.

Download the latest version (v1.3 at the time of writing) from http://www.tsaysoft.com/mysysprep/ and extract all files to the 'C:\sysprep' folder created earlier.  Modify the 'C:\sysprep\MySysprep.inf' file to your specific requirements to enable HAL switching before Mini-Setup is run.  There are several ways to do this:

[CPU]
GenuineIntel.MP=mp.inf
GenuineIntel.UP=up.inf
;AuthenticAMD.MP=mp.inf
;AuthenticAMD.UP=up.inf

[Manufacturer]
;Manufacturer Name=mfg.inf

[Model Like]
;Model Name with wildcards=modellike.inf

[Model]
;Model Name=model.inf
;MP model=mp.inf
;UP model=up.inf
;Latitude D510=up.inf
;Latitude D520=mp.inf
;Optiplex GX520=up.inf
;Optiplex 755=mp.inf
Latitude D505=acpipc.inf

[SerialNo Like]
;Serial No with wildcards=seriallike.inf

[SerialNo]
;Serial No=serial.inf


You can get the model info by typing "c:\sysprep\mysysprep /smbios" from a command prompt.

I had an issue whereby, I built a base image using a 'Dell Latitude D505' laptop which uses the 'Advanced Configuration and Power Interface (ACPI)' HAL and used SYSPREP and MySysprep to deploy to 'ACPI Multiprocessor PC' and 'ACPI Uniprocessor PC' based machines.  First, I tried specifying just the [Model] details but this didn't change the HAL on any machines I tried to deploy to (the base machine (D505)worked fine as expected).  I then tried uncommenting the [CPU] section and this did change the HAL correctly however, the base machine (D505) wouldn't boot.  I am now going to try specifiying a new option just for the D505 as in the example above.

Make sure you have the files 'mp.inf', 'up.inf' and 'acpipc.inf' in the 'C:\sysprep' folder.  These files should contain a single config line which will be merged into 'sysprep.inf' by MySysprep before Mini-Setup is run:

;MP models can use this file (mp.inf).
[Unattended]
UpdateHAL=ACPIAPIC_MP,%WINDIR%\inf\hal.inf


;UP models can use this file (up.inf).
[Unattended]
UpdateUPHAL=ACPIAPIC_UP,%WINDIR%\inf\hal.inf


;ACPI models can use this file (acpipc.inf).
[Unattended]
UpdateUPHAL=


9. Backup the 'C:\Drivers' and 'C:\sysprep'

Copy both the 'C:\Drivers' and 'C:\sysprep' folders to a suitable location on your server for later addition to the $OEM$ file structure within WDS.

After SYSPREP has been run and Mini-Setup completes, the 'C:\sysprep' folder will be automatically deleted.


10. Capture a pre-SYSPREP image of your base machine.

It is widely believed that SYSPREP can only be used a limited number of times before 'strange' things start to happen!  Therefore, it is a good idea to take an image of the base machine before SYSPREPing it.  This allows you to make any future modifications to the clean base image such as adding or updating software packages before SYSPREPing again ready to deploy.  Unfortunately, WDS can only capture and deploy SYSPREPed images so you will have to use an alternative imaging method.

I use, through habit and a 'if it ain't broke...' mentality, a bootable USB flash drive based on a now very old version of 'Bart's Network Boot Disk'.  This allows me to turn on any of my computers, boot from the USB device into a DOS environment, automatically load the correct network drivers, map a shared drive on the server and run the DOS version of Ghost 2003, (ghost.exe).  From there, I can capture an image of the pre-SYSPREP base machine for future modifications.

This could be accomplished any number of ways although probably the best way is to use a more modern, supported and infinitely more flexible, boot CD such as BartPE.

It is good practice to keep and maintain a 'changelog' with each stored image detailing applications added and updated and any configurations and modifications made.  You should also keep a couple of older versions of the pre-SYSPREP image incase you need to 'roll back' any changes.

11.  SYSPREP the image with MySysprep instead.

Before beginning the SYSPREP process, clean out all Temp folders including files relating to Internet Explorer and Firefox.  Empty the Recycle Bin, clear records of recently accessed documents and programs and finally, clear all Event Logs.

Run 'MySysprep.exe' from the 'C:\sysprep' folder and click 'OK' past the warning.

Ensure that 'Use Mini-Setup' is the only option checked and that the 'Shutdown mode' is set to 'Shutdown' and click 'Reseal'.  This will begin the SYSPREP process of removing unique information from the base machine and uninstalling some devices.  Depending on the number of devices specified in the [SysprepMassStorage] section of your 'sysprep.inf' file, this will take a few minutes.  If you have specified the 'BuildMassStorageSection=Yes' option, SYSPREP could take 30mins to complete!

When complete, SYSPREP will shutdown the machine ready for the base image to be captured in WDS.  DO NOT allow the machine to boot normally as Mini-Setup will run automatically and you will have to start over again!

You are now ready to configure WDS and capture the base image.

Contact us

Contact us now to discuss your requirements with no obligations.

Tel: 01480 403212 (9am-6pm Mon-Fri)
Email: This email address is being protected from spambots. You need JavaScript enabled to view it.

Dedicated telephone support is provided for all clients. However, for general enquires email is often the most effective method of communication.  

We aim to respond to all support requests within 4hrs and all other enquires within 24hrs*.

logos_sm