Use DHCP to detect UEFI or Legacy BIOS system and PXE boot to SCCM

Windows Device

I’ve been working on a customer setup where I needed to be able to support legacy bios devices and UEFI devices.
We didn’t have access to the customer network equipment so we couldn’t accomplish the requirement to support legacy bios og UEFI using IP Helper addresses.

I made a solution with some minor changes from http://2pintsoftware.com/whitepaper-using-dhcp-uefi-bios-pxe-booting/

What you need to do following the above PDF file in the link is to create Vendor Classes to detect if and act on if a particular bios or uefi devices PXE boot.
I’ll not go into deeper detail on how to do this as the above pdf file from 2pintsoftware.com has a go walkthrough guide. But i’ll add some extra info on how to find the value that you need to find to support UEFI and Legacy BIOS through DHCP.

In the customer setup I made 4 Vendor Classes to support the following devices:
UEFI 64 bit
UEFI 32 bit
UEFI 32 and 64 bit (VMware ESXi 6 virtual machine does this)
Legacy BIOS

Theses four types has four difference PXE Arch types
UEFI 64 bit is PXEClient:Arch:00007
UEFI 32 bit is PXEClient:Arch:00006
UEFI 32 and 64 bit (VMware ESXi 6 virtual machine does this) is PXEClient:Arch:00009
Legacy BIOS is PXEClient:Arch:00000

In DHCP you would and the Vendor Classes by right clicking IPv4 and then chose Define Vendor Classes
You then add them like in the picture below.

To see the PXE Client Arch values you can PXE boot a in legacy BIOS, UEFI or VMWare UEFI device and then look in the file C:\Windows\system32\dhcp\DhcpSrvLog-%day%.log file
In the log file search for the MAC address. And then in the line below you can see the PXEClient Arch value of 00000 which indicate a legacy BIOS device.

2016-07-27_09-30-26

After this you define a policies to detect the specific vendor class/PXE Client Arch type and what values to sent to the device.

You do this on the DHCP server under Policies and right click New Policy

 2016-07-27_09-37-20

Under conditions you create a new one and then choose the Vendor Class in value that you would like to detect. Remember to Append wildcard and shown below.

2016-07-27_09-37-52

In options add the following options for UEFI devices

Option 60 = PXEClient
Option 66 = FQDN of SCCM server
Option 67 = smsboot\x64\wdsmgfw.efi or smsboot\x86\wdsmgfw.efi for either 32 or 64 bit devices.

For legacy bios you add the following options leaving out option 60.
Option 66 = FQDN of SCCM server
Option 67 = SMSBoot\x64\wdsnbp.com

After this you have the following under server options.

With this in place the DHCP server will do some of the same thing as the IP Helper address but without touching the configuration of the switches.
Feel free to write any comments below.

About the author:
Cloud Architect with over 15+ years of hands-on experience with Microsoft enterprise solutions. Deep technical skills in servers, desktops, security, productivity applications.

Leave a Reply

Your email address will not be published. Required fields are marked *