If you use WDS on a regular basis, you know that after PXE booting, WDS loads the Windows Boot Manager to allow you to choose which boot image you’d like to boot with. You’ll also have undoubtedly been a victim of time (which, by default, is 30 seconds) – where you look away for just a second (I swear!) and WDS has chosen the default boot image and begun to boot.
So, I present you with a way to change that: bcdedit. Microsoft has a TechNet article that gives the necessary commands to run on your WDS server to make changes to this timeout value.
You can view the current BCD Store settings via this command (insert your own value for the bold text):
bcdedit /enum all /store <full path and file name of store>
An example return will be something like this:
C:\>bcdedit /enum all /store e:\RemoteInstall\Boot\x86\default.bcd
Windows Boot Manager
--------------------
identifier {bootmgr}
inherit {dbgsettings}
timeout 30
Real-mode Application (10400009)
--------------------------------
identifier {40fe5c41-285e-412b-b4cd-0ce498e470a2}
device boot
path OSChooser\i386\startrom.n12
description Remote Installation Services
pxesoftreboot Yes
Debugger Settings
-----------------
identifier {dbgsettings}
debugtype Serial
debugport 1
baudrate 115200
Device options
--------------
identifier {68d9e51c-a129-4ee1-9725-2ab00a957daf}
ramdisksdidevice boot
ramdisksdipath \Boot\Boot.SDI
You can choose whether to edit your x86 or your x64 store by changing the “bold “x86” above to the appropriate architecture. Now, we can see here that the timeout is currently set for 30 seconds.
Here are the commands to change that timeout (insert your own values for the bold text):
bcdedit /store <full path and file name of store> /set {bootmgr} timeout <value in seconds>
After you change the timeout value, you need to force the BCD store to regenerate:
sc control wdsserver 129
After this you’ll see an output similar to this:
SERVICE_NAME: wdsserver
TYPE: 20
WIN32_SHARE_PROCESS
STATE: 4 RUNNING
(STOPPABLE, NOT_PAUSABLE, ACCEPTS_SHUTDOWN)
WIN32_EXIT_CODE: 0 (0×0)
SERVICE_EXIT_CODE: 0 (0×0)
CHECKPOINT: 0×0 WAIT_HINT: 0×0
And you’re done.