Multiple WDS server on the same network?

A student asked whether he can have multiple WDS server on the same network, actually:

You can have multiple Windows Server 2008 WDS servers on the network.
However, you will not have an option to choose which WDS server you would like to connect.
When PXE booting from a client, The first WDS server who responds to it will server this client. If you would like to manually set which WDS server will serve a client, you can prestage the client, update IP helper or use DHCP options.

For more information, you can refer to the following articles:

Windows Deployment Services: Frequently Asked Questions

Prestaging Client Computers

Managing Network Boot Programs

Finding WDS deployed client?

A student asked how can he know which machines were deployed with WDS, after some searching, I found this:

If you use WDS to deploy OS, after you install a computer via the WDS server
(you may need to configure the policy so that computers can be automatically joined into your domain),
the computer account will contain an attribute indicating that it is installed via a WDS server,
the netbootGUID. If this attribute is not empty, this usually means that,
this machine is installed via the network (and in your environment it is the WDS server).
So, you can write a script to search the whole AD to find out the computer account
object which has a positive netbootGUID, and that computer is installed from the network.

Troubleshooting WDS Multicast performance issue.

If the multicasting is very slow, you can check the following two settings to see which impacts the performance: 

1.    Network Profile on the Network Settings tab of the WDS server properties. However, this relates to the physical network adapters and cables.

2.    The lowest client machine.

If you have more than one client machines joined in the multicast session, and if these machines have different hardware configurations, the speed will be impacted by the slowest one. You can take a look at the following article for more detailed information on this:

If these methods don’t change the performance, and if you think the speed is really very slow, you can test several client computers on your network, and compare the performance with the test results outlined in the “Performance and Scalability Expectations” section in the following article:

Optimizing Performance:

Please note that the test results may vary on different hardware devices and settings (both on server and client machines).

Besides, here is another article just for your reference:

Analyzing Performance Problems:

Controlling WDS to listen on specific NIC

If you want to control your WDS server to respond to specific NIC card, you can:

use WDSUTIL commands as follows:

1.    Open an elevated command prompt.
2.    Run WDSUTIL /Set-Server /BindPolicy /Add /Address:<IP or MAC address> /AddressType:{IP|MAC}

This adds the specified network interface to the list in the Registry.

3.    Run WDSUTIL /Set-Server /BindPolicy /Policy:Include

This forces PXE provider to listen on these interfaces listed in the list.
If you use “/Policy:Exlude” instead of “/Policy:Include “, then the interfaces in the list will be excluded.

For more details about this, please refer to:

How to Manage Your Server:

Configure Windows Server 2008 System Policy without the use of GPO

Microsoft have an article about how to automatically import a customized security template into a computer.

Windows XP Security Guide:

Those steps work on Windows Server 2008! So you can just follow it.

Here are the main steps for your reference:

1.    Create a custom template using the MMC Security Templates snap-in, and save it to a folder.
2.    Create a new security database associated with the security template you created in step 1, and save it to the same folder.
3.    You can put this folder in the $OEM$\$1 on the WDS server, so that this folder can be copied to target machine during the deployment.
4.    Use secedit command to import the security configuration. You can add this entry as following into FirstLogonCommands section of an unattended answer file:

Secedit /configure /db <DatabasePath> /cfg <infFilePath>

Please refer to the help document included in the Windows AIK for details on the unattended answer file.

Use USB to deploy WIM

A student asked whether we can use a USB stick to deploy a WIM image to client PC, without the use of WDS.
After some searching, I found the following method:

1) We should create bootable Windows PE on USB disk
2) Use sysprep tool to prepare install.wim and copy it to USB disk
3) Customize a script used in a Windows PE Image to realize the automatic deployment.

I assume you have successfully completed the step 1 and 2. I will mainly focus on step 3.

Windows PE provides three methods for launching custom scripts: Winpeshl.ini, Startnet.cmd, and Unattend.xml. We can create our own version of Startnet.cmd, Startnet.cmd or Unattend.xml to run a specific set of commands, batch files, or scripts.

1. Winpeshl.ini method

Add a Customized Script with Winpeshl.ini. We can launch a customized shell application by using a file called Winpeshl.ini. Winpeshl.exe will process the settings in Winpeshl.ini during boot.

About how to create Winpeshl.ini file, please refer to the chapter “Include a Custom Script in a Windows PE Image WAIK” in WAIK help document.

2. Startnet.cmd method

Add a Customized Script with Startnet.cmd. We can add customized command-line scripts in Windows PE by using Startnet.cmd. By default, Windows PE includes a Startnet.cmd script located at %SYSTEMROOT%\System32 of your customized Windows PE image.

About how to create Startnet.cmd file, please also refer to the chapter “Include a Custom Script in a Windows PE Image WAIK” in WAIK help document.

3. Unattend.xml

When Windows PE starts, it implicitly looks for a file called Unattend.xml at the root of any bootable device (for example, a USB flash drive or a floppy disk). You can also specify an Unattend.xml file by using Startnet.cmd and Wpeinit.exe.

To learn more about creating an answer file, please see the Building an Answer File chapter in WAIK help document.

Moreover, no matter what method we choose, this script should at least include the following functions:

1) Enumerate all the install images stored on the USB disk
2) Format the local disk
3) Apply the install image from USB disk to local disk as ImageX tool provided

Adding OEM logo to Windows Server 2008

If you want to add OEM logo to the properties page of “My Computer” in WIndows Server 2008, you can: 

1.    Open regedit and goto: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OEMInformation

You may need to manually create this key if it doesn’t exist.

2.    Right-click this key and in right-side pane, create the following string values and set their values as shown below:

Logo – path_of_OEMlogo.bmp_file
Manufacturer – Any_desired_name
Model – Any_desired_name
SupportHours – Any_desired_time_amount_like_24x7
SupportPhone – Any_desired_phone_number
SupportURL – Any_desired_URL

NOTE: OEMlogo.bmp file should be 96×96 in size and can be placed at any location. 

3.    Open System Properties (may need rebooting) by right-clicking on My Computer icon on desktop and select Properties, you will see your desired entries in System section and another section will also be created with the same name as you entered in Manufacturer String value. The OEMlogo.bmp file will be shown in right-side of System section.

Adding Language Pack to offline image

Microsoft have an article giving the detailed information about how to install a language pack to an offline image.

Install a Language Pack to an Offline Image:

Here are some major steps:

1.    Install Windows AIK with the default settings. Then you can use some command-line tools such as “imagex” by clicking “Start -> All Programs -> Microsoft Windows AIK -> Windows PE Tools Command Prompt”, and you can use Windows System Image Manager by clicking ” Start -> All Programs -> Microsoft Windows AIK -> Windows System Image Manager”.

2.    Create an answer file that contain ” <source location=”C:\LPs\fr-FR\” />” (you may need to adjust it to your situation).

3.    Mount the image to an empty folder.

4.    Use Package Manager to apply the unattended installation answer file to the mounted Windows image.

5.    Use intlcfg to configure the image appropriately.

6.    Unmount the .wim file and commit the changes.

During the process, you need Windows AIK, and you can download it from

Overview on Windows Deployment in Windows 2008

Here is a brief introduction on the deployment service in Windows Server 2008:

Generally speaking, we can divide the deployment processes into two parts, generating an image and installing the image.

How to generate an image:
You can manually create an image (either syspreped image or images from the Setup media) that you want to deploy to computers, including some drivers, applications, packages and unattend answer file. You can use some tools such as imagex and pkgmgr (included in Windows AIK) to modify the image.

If you think that modification of the image is much complicated, well, you can try the BDD 2007. It helps you generate an image automatically, associating the image with drivers, applications, packages and so on.

How to install the image:
Of course, you can install an operating system directly from the Setup media.

Or, after generating the image (including the boot image and the install image), in whatever way, you can burn it into a DVD media and then use this DVD to install the operating system onto computers.

If you want to deploy the operating system through the network, you can use one of three methods:

1.    You can use BDD 2007. However, you may also need to burn the boot image (Windows PE) onto a DVD media and use this DVD to install the operating system.

2.    If you use WDS server, you can install the operating system thoroughly through the network without any DVD or removable media.

3.    You can also manually deploy the install image by using some command-line tools including in Windows AIK. However, this is not easy to do.

So, Windows AIK provides a lot of tools, such as imagex and pkgmgr, to help you modify the image (boot image and install image) and create unattended answer files. BDD 2007 helps you generate an image automatically, if you think that manually modifying an image is a complicated work.

If you want to deploy an image and if you are in an Active Directory domain environment, I would like to suggest that you use WDS, as it has some advantages than BDD, such as WDS cooperates with Active Directory and you can apply some policies to restrict the deployment processes.

For more detailed information, you may need to read these articles:
WDS step by step guide –

Moving IIS setting from Windows Server 2003 to Windows Server 2008

The Microsoft Web Deployment Tool (MS Deploy) is a utility that you can use to migrate your Web server or Web site from a computer that is running Information Services (IIS) version 6.0 on Microsoft Windows Server 2003 to a computer that is running IIS 7.0 on Windows Server 2008.

You can find more detail of the tool in here: