System Center Configuration Manager (SCCM), formerly known as Systems Management Server (SMS), is a Microsoft product used to deploy and manage large groups of Windows computers. If you are using iPXE, then you can boot an SCCM client using HTTP, which is much faster and more reliable than the default TFTP protocol. Over a Gigabit Ethernet network, a typical 200MB SCCM image should download in less than two seconds.
In the Configuration Manager console, open up Site Database → Computer Management → Operating Systems Deployment. Right-click on Task Sequences and choose Create Task Sequence Media.
In the Create Task Sequence Media Wizard, choose Bootable Media and CD/DVD set, and save the media file as sccm.iso
.
Extract all files from the ISO image sccm.iso
to a directory sccmfiles
.
Download the latest version of wimboot.zip, and extract the file wimboot
.
Create a text file bootstrap.vbs
containing:
Set os = WScript.CreateObject ( "WScript.Shell" ) os.Run "%COMSPEC%", 7, false os.Run "%COMSPEC% /c title Initialising... && wpeinit " & _ "&& net start dnscache", 1, true os.RegWrite "HKLM\SYSTEM\CurrentControlSet\Control\PEBootType", _ "Ramdisk:OpticalDrive", "REG_SZ" os.Run WScript.ScriptFullName & "\..\TsmBootStrap.exe /env:WinPE " & _ "/configpath:%SYSTEMDRIVE%\sms\data", 1, true
Create a text file winpeshl.ini
containing:
[LaunchApps] "wscript.exe","%SYSTEMDRIVE%\sms\bin\x64\bootstrap.vbs"
If you are using a 32-bit client computer, then you will need to change “x64” to “x86”.
Create a text file sccm.ipxe
containing:
#!ipxe kernel wimboot initrd bcd BCD initrd boot.wim boot.wim boot
You can use the ImageX
tool (available as part of the Windows Automated Installation Kit (WAIK)) to mount the boot image and modify the files:
mkdir mntpnt imagex /mountrw sccmfiles\sources\boot.wim 1 mntpnt xcopy /e /f /y sccmfiles\sms mntpnt\sms copy /y winpeshl.ini mntpnt\Windows\System32\ copy /y bootstrap.vbs mntpnt\sms\bin\x64\ imagex /unmount /commit mntpnt
You can use the imagex
tool (available as part of wimlib) to mount the boot image and modify the files:
mkdir mntpnt imagex mountrw sccmfiles/sources/boot.wim 1 mntpnt cp -drn sccmfiles/sms/* mntpnt/sms/ rm -f mntpnt/Windows/System32/winpeshl.ini cp winpeshl.ini mntpnt/Windows/System32/ cp bootstrap.vbs mntpnt/sms/bin/x64/ imagex unmount mntpnt --commit
Copy the files:
sccm.ipxe
wimboot
sccmfiles/boot/bcd
sccmfiles/sources/boot.wim
to a single directory on your web server.
You should now be able to configure iPXE to boot from the file sccm.ipxe
on your web server. For example, if you are using ISC dhcpd then you can edit /etc/dhcpd.conf
to contain
filename "http://my.web.server/sccm.ipxe";
You should see iPXE download and boot your SCCM files:
A few seconds later, you should see the usual SCCM “Welcome to the Task Sequence Wizard” screen:
Congratulations on successfully booting SCCM via HTTP!