千家信息网

如何使SCCM同时支持BIOS PXE Boot 和 UEFI PXE Boot

发表于:2024-12-12 作者:千家信息网编辑
千家信息网最后更新 2024年12月12日,Learn how to PXE Boot both BIOS & UEFImachines with DHCP Policies and Custom Vendor ClassesOne of th
千家信息网最后更新 2024年12月12日如何使SCCM同时支持BIOS PXE Boot 和 UEFI PXE Boot

Learn how to PXE Boot both BIOS & UEFImachines with DHCP Policies and Custom Vendor Classes

One of the challenges that an IT deployment administrator mayface in the field is the ability to boot both BIOS and UEFImachines from the same WDS environment. This is exactly the issue Ifaced when our organization decided to purchase a number of newSurface devices. These were the first set of devices that wereconfigured to natively boot to UEFI. This leaves you to decide froman organization standpoint whether you wish to boot all yourdevices using UEFI or the legacy BIOS…or does it.


I am a strong believer that finding a workaround to a problem isnot a fix to the problem. To that end modern devices such as thesurface are meant to be booted using the native UEFI boot. However,many organizations may also still have legacy BIOS devices that donot support UEFI boot or just work better booting from BIOS.Whatever the reasoning behind this it is actually quite easy tosetup DHCP to provide the BIOS or UEFI boot file depending on whatis used.

The solution!
By using DHCP policies and custom vendor classes for the followingDHCP Options:

Option 60
Option 66
Option 67

The below assumes that you have SCCM configured with a PXE enableddistribution point and a valid and configured DHCP server. Youshould therefore be at a configured state where you are able to PXEboot BIOS based devices.

Create Custom Vendor Classes for Use with your DHCPPolicy

Think Custom Vendor Classes as Detection Method's used to determinehow devices are requesting a boot image from the DHCP server.

  • Open the DHCP Console and expand the IPv4 Node

  • Right-Click on 'IPv4 Node' and select 'Define VendorClasses'

  • Click 'Add'

  • Create the UEFI 64-Bit Vendor class first by entering thefollowing information

  • Enter the following information for the respectivefields:

    • DisplayName: PXEClient (UEFI x64)

    • Description: PXEClient:Arch:00007

    • ASCII: PXEClient:Arch:00007

  • Click 'OK'

  • Click 'Add'

    • DisplayName: PXEClient (UEFI x86)

    • Description: PXEClient:Arch:00006

    • ASCII: PXEClient:Arch:00006

  • Click 'OK'

  • Click 'Add'

    • DisplayName: PXEClient (BIOS x86& x64)

    • Description: PXEClient:Arch:00000

    • ASCII: PXEClient:Arch:00000

  • Click 'OK'

Creating Custom DHCP Policies



UEFI 64-Bit DHCP Policy

  • Right-Click 'Policies' and click 'New Policy'

  • Give the policy a friendly name that coincides with the yourvendor class naming scheme:

    • PolicyName: PXEClient (UEFI x64)

    • Description: Delivers the correct bootfile for (UEFIx64)

  • Click 'Next'

  • On the 'Configure Conditions for the policy' page click'add'

  • Select the 'Value' drop-down box and selectthe PXEClient (UEFIx64) vendor class that you created in previoussteps

  • Ensure that you check the box 'Appendwildcard(*)'

  • Select 'Add'

  • Select 'Ok'

  • Click 'Next'

  • If you want the policy to affect only a specific range withinyour scope configure it, otherwise select no and click 'next'

  • On the Configure settings for the policy page ensure that 'DHCPStandard Options' is selected from the drop down box

  • Configure the following scope options:

    • 060: PXEClient

    • 066: IP Address of the SCCM or WDSService

    • 067: smsboot\x64\wdsmgfw.efi

  • Cick 'Next'

  • On the Summary pageclick 'Finish'



BIOS 32-Bit & 64-Bit DHCPPolicy

  • Right-Click 'Policies' and click 'New Policy'

  • Give the policy a friendly name that coincides with the yourvendor class naming scheme:

    • PolicyName: PXEClient (BIOS x86& x64)

    • Description: Delivers the correct bootfile for BIOSmachines

  • Click 'Next'

  • On the 'Configure Conditions for the policy' page click'add'

  • Select the 'Value' drop-down box and selectthe PXEClient (BIOS x86& x64) vendor class thatyou created in previous steps

  • Ensure that you check the box 'Appendwildcard(*)'

  • Select 'Add'

  • Select 'Ok'

  • Click 'Next'

  • If you want the policy to affect only a specific range withinyour scope configure it, otherwise select no and click 'next'

  • On the Configure settings for the policy page ensure that 'DHCPStandard Options' is selected from the drop down box

  • Configure the following scope options:

    • 060: PXEClient

    • 066: IP Address of the SCCM or WDSService

    • 067: smsboot\x64\wdsnbp.com

  • Cick 'Next'

  • On the Summary pageclick 'Finish'

UEFI 32-Bit DHCP Policy

  • Right-Click 'Policies' and click 'New Policy'

  • Give the policy a friendly name that coincides with the yourvendor class naming scheme:

    • PolicyName: PXEClient (UEFI x86)

    • Description: Delivers the correct bootfile for (UEFIx86) machines

  • Click 'Next'

  • On the 'Configure Conditions for the policy' page click'add'

  • Select the 'Value' drop-down box and selectthe PXEClient (UEFIx86) vendor class that you created in previoussteps

  • Ensure that you check the box 'Appendwildcard(*)'

  • Select 'Add'

  • Select 'Ok'

  • Click 'Next'

  • If you want the policy to affect only a specific range withinyour scope configure it, otherwise select no and click 'next'

  • On the Configure settings for the policy page ensure that 'DHCPStandard Options' is selected from the drop down box

  • Configure the following scope options:

    • 060: PXEClient

    • 066: IP Address of the SCCM or WDSService

    • 067: smsboot\x86\wdsmgfw.efi

  • Cick 'Next'

  • On the Summary pageclick 'Finish'

Remove Default PXE Options

  • Ensure that you have removed the 067, 066, 060 options from thedefault scope options to ensure that the Policies take precedenceotherwise you will end up with conflict


As long as you have configured everything correctly you should nowhave the ability to boot machines from BIOS orUEFI. Hopefully this helps alleviate some of the stress surroundingyour PXE deployments. This has worked great on all of ourdistribution points since implementation and has allowed ourdeployments to be much more flexible.


0