Booting SCCM via HTTP

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.

Preparation

Create the boot files

sccm.iso

A CD-ROM

In the Configuration Manager console, open up Site DatabaseComputer ManagementOperating 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.

wimboot

Download the latest version of wimboot.zip, and extract the file wimboot.

bootstrap.vbs

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

winpeshl.ini

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”.

sccm.ipxe

Create a text file sccm.ipxe containing:

Some RAM

  #!ipxe
  
  kernel wimboot
  initrd bcd      BCD
  initrd boot.wim boot.wim
  boot

Modify the boot image

Modify the boot image (using Windows)

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

Modify the boot image (using Linux)

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

Publish the boot files

A network card

Copy the files:

  • sccm.ipxe
  • wimboot
  • sccmfiles/boot/bcd
  • sccmfiles/sources/boot.wim

to a single directory on your web server.

Booting

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:

Screenshot of SCCM booting

A few seconds later, you should see the usual SCCM “Welcome to the Task Sequence Wizard” screen:

Screenshot of SCCM booted via HTTP

Congratulations on successfully booting SCCM via HTTP!

Success

howto/sccm.txt · Last modified: 2023/03/16 12:36 by mcb30
Recent changes RSS feed CC Attribution-Share Alike 4.0 International Driven by DokuWiki
All uses of this content must include an attribution to the iPXE project and the URL https://ipxe.org
References to "iPXE" may not be altered or removed.