You have two options when installing the Windows Deployment Services role in Windows Server 2008. You can install:
- Both the Deployment Server and Transport
Server role services (default)
- Only the Transport Server role service
The second configuration is for advanced scenarios, such as environments without Active Directory Domain Services (AD DS), Domain Name System (DNS), or Dynamic Host Configuration Protocol (DHCP). You can configure Transport Server to enable you to boot from the network using Pre-Boot Execution Environment (PXE) and Trivial File Transfer Protocol (TFTP), a multicast server, or both. Note that Transport Server does not contain or support the Windows Deployment Services image store.
In This Topic
Comparison of Deployment Server and Transport Server
The following table compares these two installation options. In general, Deployment Server enables the end-to-end Windows Deployment Services deployment solution. Transport Server is a platform that you can use to create a custom multicast deployment solution.
Deployment Server | Transport Server | |
---|---|---|
Server requirements |
Requires AD DS, Dynamic Host Configuration Protocol (DHCP), and Dynamic Name Services (DNS) in the environment. |
Does not require other servers in the environment. |
PXE |
Supports PXE boot with the default PXE provider. |
A PXE provider is not installed so you must create a custom PXE provider. |
Image server |
Includes the Windows Deployment Services image server. |
Does not include the Windows Deployment Services image server. |
Transmission method |
Allows both unicasting and multicasting. |
Allows only multicasting. |
Management tools |
Is managed using either the Windows Deployment Services MMC snap-in or the WDSUTIL command-line tool. |
Is managed only by the WDSUTIL command-line tool. |
Application on the client computer |
Uses the Windows Deployment Services client (which is basically Setup.exe and supporting files), Wdsmcast.exe (which is included in the Windows AIK), or a custom multicast application. |
Uses only Wdsmcast.exe or custom application. |
The server architectures are illustrated in the following diagram. The blue parts are installed with Transport Server and the Deployment Server. The grey parts are installed with the Deployment Server only. The yellow parts are not installed with either, but can be written using guidelines in the Windows SDK.
Configuring Transport Server
Transport Server does not require any configuration. However, the following configurations are optional. After configuring any of these settings, you must restart the WDSServer service to apply the changes (at an elevated command prompt, run net stop wdsserver, and then run net start wdsserver.)
- Configure how to obtain IP addresses.
If multiple servers are using multicast functionality on a network
(Transport Server, Deployment Server, or another solution), it is
important that each server is configured so that the multicast IP
addresses do not collide. Otherwise, you may encounter excessive
traffic when you enable multicasting. Note that each Windows
Deployment Services server will have the same default range. To
work around this issue, specify static ranges that do not overlap
to ensure that each server is using a unique IP address, or
configure each of the servers to obtain multicast addresses from a
Multicast Address Dynamic Client Allocation Protocol (MADCAP)
server.
- To use MADCAP for IP addresses, run
WDSUTIL /Set-TransportServer /ObtainIPv4From:DHCP at an
elevated command prompt.
- To defined range for IP addresses, run
WDSUTIL /Set-TransportServer /ObtainIPv4From:Range
/Start:<start Ipv4 Address> /End:<end Ipv4 Address>
at an elevated command prompt.
- To use MADCAP for IP addresses, run
WDSUTIL /Set-TransportServer /ObtainIPv4From:DHCP at an
elevated command prompt.
- Set the network profile. The network
profile specifies the network speed of the Transport Server. Each
profile contains settings to optimize performance for the specified
speed (such as the maximum transport window size, the transport
cache size, and the block size). You can view the profiles at
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WDSServer\Providers\Multicast\Profiles.
Specify Custom if you want to customize the settings
yourself by editing the registry. You should not modify the other
profiles that are provided. You should use the custom profile even
if you only want to change one setting. To set the profile, run
WDSUTIL /Set-TransportServer [/Server:<name>]
/Profile:{10Mbps|100Mbps|1Gbps|Custom} at an elevated command
prompt.
- Set the UDP port range. To do this,
run WDSUTIL /Set-TransportServer [/Server:<name>]
/StartPort:x /EndPort:y at an elevated command prompt.
Using a Transport Server to Boot from the Network
A PXE server consists of two parts: a PXE listener that accepts incoming traffic, and a PXE provider that determines how best to respond to it. Transport Server contains only the PXE listener. In order to use Transport Server to boot a computer from the network, you will need to write a custom PXE provider, and register the provider with Windows Deployment Services, as documented in the Windows Server 2008 Software Development Kit (SDK).
Using a Transport Server for Multicasting
The multicast server in Windows Deployment Services also has two parts – the multicast provider (which transmits data over the network) and the content provider (which understands the data and passes it to the multicast provider). The content provider (installed with both Transport Server and Deployment Server) can be used to transfer any file. It also has specific knowledge of the .wim format, which it uses to transfer images while other images are added to the image group. You can create a custom content provider for cases where the default provider is not sufficient (for example when using Transport Server to deploy an operating system from inside a .vhd image). See the Windows Server 2008 SDK for guidelines and samples for authoring and registering the provider.
How to create a namespace with Transport Server
Transport Server transmits data by using multicast functionality through an object called a namespace. A namespace is analogous to a multicast transmission used by Deployment Server. A namespace consists of content to transfer (determined by the content provider with a configuration string), configuration settings (for example, Scheduled-Cast or Auto-Cast), and the names of connected clients. In this section:
Prerequisites for creating a namespace
To create a namespace with Transport Server, you need the following:
- A content provider. You can use the
Windows Deployment Services content provider (named WDS)
that is included when you install Transport Server. Or you can
create your own content provider by using the tools in the
Windows Server 2008 SDK.
- Data to transmit. You can transmit any
data that your content provider knows how to find (for example
operating system images, data files, or an MP3 archive). The
Windows Deployment Services content provider knows how to find any
file within a folder.
- Familiarity with WDSUTIL. The only way
to manage Transport Server is through the WDSUTIL command-line
tool.
- A way to boot clients. This is because
Transport Server does not include a PXE provider (such as
BINLSVC).
- Routers. The routers in your
environment must support multicasting. In particular, your network
infrastructure needs to support the Internet Group Management
Protocol (IGMP) to properly forward multicast traffic. Without the
IGMP, multicast packets are treated as broadcast packets, which can
lead to network flooding.
To create a namespace
Like with Deployment Server, you can create Scheduled-Cast and Auto-Cast namespaces. For more information about each parameter, see Options.
- To create a Scheduled-Cast
namespace
Syntax: WDSUTIL /New-Namespace [/Server:<server name>] /Namespace:<namespace name> /FriendlyName:<friendly name> [/Description:<description>] /ContentProvider:<name> /ConfigString:<config string> /NamespaceType:ScheduledCast [/Time:<YYYY/MM/DD:hh:mm>] [/Clients:<number of clients>]
For example: WDSUTIL /New-Namespace /Server:MyWDSServer /FriendlyName:"Custom Scheduled Namespace" /Namespace:"Custom Scheduled 1" /ContentProvider:WDS /ConfigString:D:\Images /NamespaceType:ScheduledCast /Time:"2006/11/20:17:00" /Clients:20
- To create an Auto-Cast namespace
Syntax: WDSUTIL /New-Namespace [/Server:<server>] /Namespace:<namespace name> /FriendlyName:<friendly name> [/Description:<description>] /ContentProvider:<name> /ConfigString:<config string> /NamespaceType:AutoCast
For example:
WDSUTIL /New-Namespace /FriendlyName:"Custom AutoCast Namespace" /Namespace:"Custom Auto 1" /ContentProvider:WDS /ConfigString:D:\Images /NamespaceType:AutoCast
How to join a client computer to a namespace by using Wdsmcast.exe
The Windows Deployment Services client user interface will not work with Transport Server. Therefore, to connect a client to a namespace, you have two options:
- Use Wdsmcast.exe, which is included in the
Windows Automated Installation Kit (AIK). This is a command-line
utility you can use to connect to any namespace or multicast
transmission that uses the Windows Deployment Services content
provider. For more information about this, see the following
procedure. You can download the Windows AIK at http://go.microsoft.com/fwlink/?LinkID=54863.
- Use a custom deployment client. You can do
this by using the APIs of the Windows Deployment Services transport
client. You will need to create a custom client if you are using a
custom content provider. For instructions on how to do this, see
the Windows Server 2008 SDK.
To join a namespace by using Wdsmcast.exe |
-
Download and install the Windows AIK.
-
Run Copype.cmd to create a Microsoft Windows Preinstallation Environment (Windows PE) image.
-
Mount the image by using Imagex.exe, and then copy the Wdsmcast.exe into the Windows PE image.
-
If the content that you are multicasting is a .wim image, copy Imagex.exe into the Windows PE image that you just created. This is so the image can be applied after it is transmitted.
-
Unmount the image and commit the changes.
-
Boot the client computer to the image (from a CD, DVD, or USB drive, or by using the PXE capability in Transport Server).
-
Start Windows PE networking by running WPEINIT on the client computer.
-
From the client computer, run a command with the following syntax (the following table explains these options):
WDSMCAST /Transfer-File /Server:<server name> /Namespace:<namespace name> /Username:<domain and user name> [/Password:<password>] /SourceFile:<file path> /DestinationFile:<file path>
Syntax:
Option | Description | ||||||||
---|---|---|---|---|---|---|---|---|---|
/Server:<server name> |
The name of the Windows Deployment Services server. This can be either the NetBIOS name or the fully qualified domain name (FQDN). If the server name is not specified, the name of the local server will be used. |
||||||||
/Namespace:<namespace name> |
The name of the namespace. This value should match the name given when creating the namespace on the server. This is not the "friendly" name, and it must be unique.
|
||||||||
/Username:<domain and user name> |
The domain name and user name to connect to the server. These can be either in the format Domain\User or the format User@Domain. |
||||||||
[/Password:<password>] |
The password for the user. If this is not specified, you will be prompted to enter it. |
||||||||
/SourceFile:<file path> |
Path to the name of the file to be transferred, relative to the directory specified in the /ConfigString path of the namespace. For example, if you specified WDSUTIL /New-Namespace /ConfigString:C:\RemoteInstall\Images, specify /SourceFile:ImageGroup\install.wim. |
||||||||
/DestinationFile:<file path> |
The complete file path and name for the destination file. |
How to perform common tasks
The following are the most commonly used commands with Transport Server. For more information about each parameter, see Options.
- To start the transmission. To start a
transmission, the transmission must be a Scheduled-Cast namespace,
and there must be at least one client that has requested the
transmission of data.
Syntax: WDSUTIL /Start-Namespace /Namespace:<name>
- To display information for the clients
that are connected to a namespace (for example, computer name,
MAC address, IP address, speed, and percent complete)
Syntax: WDSUTIL /Get-Namespace /Namespace:<name> /Show:Clients
- To remove a namespace
Syntax: WDSUTIL /Remove-Namespace [/Server:<server name>] /Namespace:<namespace name> [/Force]
For example:
- To remove the namespace after current client
downloads are complete, run:
WDSUTIL /Remove-Namespace /Namespace:"Custom Auto 1"
- To remove the namespace immediately and stop
any current client downloads, run:
WDSUTIL /Remove-Namespace /Server:MyWDSServer /Namespace:"Custom Auto 1" /Force
- To remove the namespace after current client
downloads are complete, run:
- To stop a client installation
completely
Syntax: WDSUTIL /Disconnect-Client /ClientID:<id> /Force
Important You should use this option with caution because the installation will fail and the computer could be left in an unusable state.
- To discontinue the download for a client
but continue to transfer the image through another method (such as
SMB copy). The client will fall back to another method of
transfer only if the client implementation supports this behavior.
Although the Windows Deployment Services client will fall back to
SMB transfer, note that Wdsmcast.exe does not support any fallback
mechanism.
Syntax: WDSUTIL /Disconnect-Client /ClientID:<id>
- To view the client <id> for each
namespace
Syntax: WDSUTIL /Get-Namespace /Namespace:<name> /show:clients
- To view all clients connected to all
namespaces on the server
Syntax: WDSUTIL /Get-AllNamespaces
Options
The options in the following table apply to the sections "Creating a namespace with Transport Server" and "Using common commands" earlier in this chapter.
Option | Description | ||||||||
---|---|---|---|---|---|---|---|---|---|
/Server:<server name> |
The name of the Windows Deployment Services server. This can be either the NetBIOS name or the FQDN. If the server name is not specified, the name of the local server will be used. |
||||||||
/Namespace:<Namespace name> |
The name of the namespace. This value should match the name given when creating the namespace on the server. Note that this is not the "friendly" name, and it must be unique.
|
||||||||
/FriendlyName:<friendly name> |
The friendly name of the namespace. Note that this name does not need to be unique. |
||||||||
/Description:<description> |
A short description of the namespace. |
||||||||
/ContentProvider:<name> |
The name of the content provider that supplies data to the multicast server. If you are using the Windows Deployment Services content provider, specify WDS. |
||||||||
/ConfigString:<config string> |
The configuration string for the content provider. If you are using the Windows Deployment Services content provider (WDS), specify the path to the folder where content is stored (for example, D:\Photos\Landscapes). This path can be anywhere on the server. |
||||||||
/NamespaceType: {AutoCast|ScheduledCast} |
The type of namespace to be created. |
||||||||
/Time:<YYYY/MM/DD:hh:mm> |
The time on the server when the namespace will start (note that you can set this option only for Scheduled-Cast transmissions). |
||||||||
/Clients:<Num of Clients> |
The number of clients to wait for before the namespace will start (note that you can set this option only for Scheduled-Cast transmissions). |
||||||||
/Force |
An option that deletes the transmission, even if there are current client installations. If you do not specify /Force, the transmission will be in the Delete Pending state, meaning that the transmission will be removed after clients' downloads are completed. |