Note: This issue/configuration has been fixed in BDD 2007 Update 1 and MDT 2008.... still here for those of you still running BDD 2007 RTM.
When using WDS Server to PXE boot the Lite Touch WinPE 2.0 image, you can use a function to to set the DeployRoot value to the WDS Server you booted from. This could be very useful for Branch Office Scenarios.
BDD 2007 Lite Touch has a variable for this called WDSServer, however it is only set if you run "wpeutil updatebootinfo" first
Method 1: Via Unattend.xml
Update unattend.xml on the Lite Touch WinPE image to start wpeutil and then set Deployroot=\\%WDSServer%\Distribution$ in bootstrap.ini.
Bootstrap.ini
[Default]
DeployRoot=\\%WDSServer%\Distribution$
Unattend.xml
<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
<settings pass="windowsPE">
<component name="Microsoft-Windows-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State">
<Display>
<ColorDepth>16</ColorDepth>
<HorizontalResolution>1024</HorizontalResolution>
<RefreshRate>60</RefreshRate>
<VerticalResolution>768</VerticalResolution>
</Display>
<RunSynchronous>
<RunSynchronousCommand wcm:action="add">
<Description>WPEUtil</Description>
<Order>1</Order>
<Path>wpeutil updatebootinfo</Path>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Description>Lite Touch PE</Description>
<Order>2</Order>
<Path>wscript.exe X:\Deploy\Scripts\LiteTouch.wsf</Path>
</RunSynchronousCommand>
</RunSynchronous>
<Restart>Restart</Restart>
</component>
</settings>
</unattend>
Method 2: Via UserExit (thanks to Volker Neumann for provding the code)
Using a userexit to call wpeutil
Bootstrap.ini
[Default]
UserExit=UserExit.vbs
DeployRoot=\\#GetWDSServerName#\Distribution$
UserExit.vbs
Function UserExit(sType, sWhen, sDetail, bSkip)
oLogging.CreateEntry "entered UserExit ", LogTypeInfo
UserExit = Success
End Function
Function GetWDSServerName
oLogging.CreateEntry "Entered UserExit Function 'GetWDSServerName'", LogTypeInfo
on error resume next
oShell.run "wpeutil updatebootinfo", 1, true
sWDSServerName = oShell.RegRead("HKLM\System\CurrentControlSet\Control\PEBootServerName")
sWDSServerName = Left(sWDSServerName, InStr(sWDSServerName ,".")-1)
oLogging.CreateEntry "WDSServerName = " & sWDSServerName, LogTypeInfo
oLogging.CreateEntry "Exiting UserExit Function 'GetWDSServerName'", LogTypeInfo
GetWDSServerName = sWDSServerName
End Function