Supporting both Legacy and UEFI mode in your SCCM environment  

  RSS

Marco Nuijens
(@manu)
Member Admin
Joined: 2 years  ago
Posts: 50
04/01/2018 11:46 am  

[et_pb_section bb_built="1" _builder_version="3.0.93" custom_margin="|||" custom_padding="|||"][et_pb_row custom_padding="27px|0px|0px|0px" custom_margin="-100px|||" _builder_version="3.0.93" background_size="initial" background_position="top_left" background_repeat="repeat"][et_pb_column type="4_4"][et_pb_text _builder_version="3.2.2" animation_direction="right"]

When you still have devices in your environment which are only supporting legacy PXE boots and you also want to support UEFI PXE boots with the same task sequence this blog-post is meant for you. I will also give you some additional options you can add to your partitioning step in the Task Sequence (TS) which could come in handy.

Although I recommend using IP helpers above using DHCP, because IP Helpers are much more reliable, underneath a step-by-step guide to configure DHCP for PXE booting legacy and UEFI in your network.

Configure DHCP to support both legacy and UEFI mode


Step one: Create custom vendor classes to use with your DHCP Policy

Create custom Vendor Classes as described in the following steps, these will help to determine how the devices are requesting the boot image from the DHCP server.

  • Open the DHCP Console and expand the IPv4 Node
  • Right-Click on ‘IPv4 Node’ and select ‘Define Vendor Classes’
  • Click ‘Add’
  • Enter the following information:
    • DisplayName: PXEClient (UEFI x64)
    • Description: PXEClient:Arch:00007
    • ASCII: PXEClient:Arch:00007
  • Click ‘OK’
  • Click ‘Add’
  • Enter the following information
    • DisplayName: PXEClient (UEFI x86)
    • Description: PXEClient:Arch:00006
    • ASCII: PXEClient:Arch:00006
  • Click ‘OK’
  • Click ‘Add’
  • Enter the following information
    • DisplayName: PXEClient (BIOS x86 & x64)
    • Description: PXEClient:Arch:00000
    • ASCII: PXEClient:Arch:00000
  • Click ‘OK’

[/et_pb_text][/et_pb_column][/et_pb_row][et_pb_row custom_padding="27px|0px|27px|1px" custom_margin="||-30px|" _builder_version="3.0.93" background_size="initial" background_position="top_left" background_repeat="repeat"][et_pb_column type="4_4"][et_pb_text _builder_version="3.0.93" animation_direction="right"]

Step two: Create the custom DHCP Policies

 

UEFI x86 DHCP Policy

 

  • Right-Click ‘Policies’ and click ‘New Policy’
  • Enter the following information:
    • PolicyName: PXEClient (UEFI x86)
    • Description: Bootfile for UEFI x86 devices
  • Click ‘Next’
  • On the ‘Configure Conditions for the policy’ page click ‘add’
  • Select the ‘Value’ drop-down box, select the 'PXEClient (UEFI x86)' vendor class which we created in the previous steps
  • be sure to check the box ‘Append wildcard(*)’
  • Select ‘Add’
  • Select ‘Ok’
  • Click ‘Next’
  • Configure the scope if you want to target the policy on a specific IP range or select 'No' and click 'Next’
  • Be sure that on the Configure settings for the policy page that ‘DHCP Standard Options’ is selected.
  • Configure the following scope options:
    • Option 060: PXEClient
    • Option 066: IP Address of the SCCM or WDS Service
    • Option 067: smsbootx86wdsmgfw.efi
  • Cick ‘Next’
  • Click ‘Finish’

[/et_pb_text][/et_pb_column][/et_pb_row][et_pb_row custom_padding="0px|0px|0px|0px" custom_margin="||-40px|" _builder_version="3.0.93" background_size="initial" background_position="top_left" background_repeat="repeat"][et_pb_column type="4_4"][et_pb_text _builder_version="3.0.93" animation_direction="right"]

UEFI x64 DHCP Policy

  • Right-Click ‘Policies’ and click ‘New Policy’
  • Enter the following information:
    • PolicyName: PXEClient (UEFI x64)
    • Description: Bootfile for UEFI x64 devices
  • Click ‘Next’
  • On the ‘Configure Conditions for the policy’ page click ‘add’
  • Select the ‘Value’ drop-down box, select the 'PXEClient (UEFI x64)' vendor class which we created in the previous steps
  • be sure to check the box ‘Append wildcard(*)’
  • Select ‘Add’
  • Select ‘Ok’
  • Click ‘Next’
  • Configure the scope if you want to target the policy on a specific IP range or select 'No' and click 'Next’
  • Be sure that on the Configure settings for the policy page that ‘DHCP Standard Options’ is selected.
  • Configure the following scope options:
    • Option 060: PXEClient
    • Option 066: IP Address of the SCCM or WDS Service
    • Option 067: smsbootx64wdsmgfw.efi
  • Cick ‘Next’
  • Click ‘Finish’

[/et_pb_text][/et_pb_column][/et_pb_row][et_pb_row custom_padding="27px|0px|27px|1px" custom_margin="||-30px|" _builder_version="3.0.93" background_size="initial" background_position="top_left" background_repeat="repeat"][et_pb_column type="4_4"][et_pb_text _builder_version="3.0.93" animation_direction="right"]
[/et_pb_text][/et_pb_column][/et_pb_row][et_pb_row custom_padding="0px|0px|0px|0px" custom_margin="||0px|" _builder_version="3.0.93" background_size="initial" background_position="top_left" background_repeat="repeat"][et_pb_column type="4_4"][et_pb_text _builder_version="3.0.93" animation_direction="right"]

(Legacy) BIOS x86 & x64 DHCP Policy 

  • Right-Click ‘Policies’ and click ‘New Policy’
  • Enter the following information:
    • PolicyName: PXEClient (BIOS x86 & x64)
    • Description: Bootfile for BIOS devices
  • Click ‘Next’
  • On the ‘Configure Conditions for the policy’ page click ‘add’
  • Select the ‘Value’ drop-down box, select the 'PXEClient (BIOS x86 & x64)' vendor class which we created in the previous steps
  • be sure to check the box ‘Append wildcard(*)’
  • Select ‘Add’
  • Select ‘Ok’
  • Click ‘Next’
  • Configure the scope if you want to target the policy on a specific IP range or select 'No' and click 'Next’
  • Be sure that on the Configure settings for the policy page that ‘DHCP Standard Options’ is selected.
  • Configure the following scope options:
    • Option 060: PXEClient
    • Option 066: IP Address of the SCCM or WDS Service
    • Option 067: smsbootx64wdsnbp.com
  • Cick ‘Next’
  • Click ‘Finish’

Final step:

Remove all the default scope options  066, 067, 060

[/et_pb_text][/et_pb_column][/et_pb_row][et_pb_row custom_padding="27px|0px|27px|1px" custom_margin="||-30px|" _builder_version="3.0.93" background_size="initial" background_position="top_left" background_repeat="repeat"][et_pb_column type="4_4"][et_pb_text _builder_version="3.0.93" animation_direction="right"]

Configure the task sequence to support both legacy and UEFI mode

Legacy and UEFI need to have a different disk partitioning configuration. During the partitioning steps we can detect if the device was legacy or UEFI PXE booted. By adding the following task sequence variable into your partitioning step you can determine if your device was booted in legacy or UEFI mode. To check if the device is PXE booted in UEFI mode add the following TS variable:

_SMSTSBootUEFI equels "True"

Your UEFI partitioning step could look like this:

[/et_pb_text][/et_pb_column][/et_pb_row][et_pb_row _builder_version="3.0.47" background_size="initial" background_position="top_left" background_repeat="repeat"][et_pb_column type="1_2"][et_pb_image admin_label="Image_UEFI_1.1" src="https://marconuijens.com/wp-content/uploads/2018/01/partioning-UEFI_1_1.png" show_in_lightbox="on" show_bottom_space="off" _builder_version="3.0.93" animation_style="fade" box_shadow_style="preset2"]

 

[/et_pb_image][/et_pb_column][et_pb_column type="1_2"][et_pb_image src="https://marconuijens.com/wp-content/uploads/2018/01/partioning-UEFI_1_2.png" _builder_version="3.0.106" animation_style="fade" box_shadow_style="preset2" show_in_lightbox="on"]
[/et_pb_image][/et_pb_column][/et_pb_row][et_pb_row custom_margin="||-50px|" _builder_version="3.0.93" background_size="initial" background_position="top_left" background_repeat="repeat"][et_pb_column type="4_4"][et_pb_text _builder_version="3.0.93" animation_direction="left"]

Or to check whether the device is PXE booted in legacy mode:

_SMSTSBootUEFI not equals "True"

Your legacy partitioning step could look like this:

[/et_pb_text][/et_pb_column][/et_pb_row][et_pb_row _builder_version="3.0.47" background_size="initial" background_position="top_left" background_repeat="repeat"][et_pb_column type="1_2"][et_pb_image admin_label="Image_legacy_1.1" src="https://marconuijens.com/wp-content/uploads/2018/01/partioning-legacy_1_1.png" show_in_lightbox="on" show_bottom_space="off" _builder_version="3.0.93" animation_style="fade" box_shadow_style="preset2"]

 

[/et_pb_image][/et_pb_column][et_pb_column type="1_2"][et_pb_image admin_label="Image_UEFI_1.2" src="https://marconuijens.com/wp-content/uploads/2018/01/partioning-legacy_1_2.png" show_in_lightbox="on" show_bottom_space="off" _builder_version="3.0.93" animation_style="fade" box_shadow_style="preset2"]

 

[/et_pb_image][/et_pb_column][/et_pb_row][et_pb_row _builder_version="3.0.47" background_size="initial" background_position="top_left" background_repeat="repeat"][et_pb_column type="4_4"][et_pb_text _builder_version="3.0.93" animation_direction="right"]

This way you can determine the disk partition configuration depending on the PXE mode (legacy/UEFI). Depending on your environment you can also create different partitioning steps within your TS for desktops, laptops, tablets or depending on your disk size. If you would like to create a second disk partition, for example when the disk is greater in size than 128gb, you can use the following WMI query:

SELECT * FROM Win32_DiskDrive WHERE Index = "0" AND Size > 138438953472

And change '>' to '<' to detect if the disk is smaller and you only want one partition.

[/et_pb_text][/et_pb_column][/et_pb_row][et_pb_row _builder_version="3.0.47" background_size="initial" background_position="top_left" background_repeat="repeat"][et_pb_column type="1_2"][et_pb_image admin_label="Image_DiskSize_1.1" src="https://marconuijens.com/wp-content/uploads/2018/01/Disk_Size_1_2.png" show_in_lightbox="on" show_bottom_space="off" _builder_version="3.0.93" animation_style="fade" box_shadow_style="preset2"]

 

[/et_pb_image][/et_pb_column][et_pb_column type="1_2"][et_pb_image admin_label="Image_DiskSize_1.2" src="https://marconuijens.com/wp-content/uploads/2018/01/Disk_Size_2_2.png" show_in_lightbox="on" show_bottom_space="off" _builder_version="3.0.93" animation_style="fade" box_shadow_style="preset2"]

 

[/et_pb_image][/et_pb_column][/et_pb_row][et_pb_row _builder_version="3.0.47" background_size="initial" background_position="top_left" background_repeat="repeat"][et_pb_column type="4_4"][et_pb_text _builder_version="3.0.93" animation_direction="right"]

If you have any comments or questions about this blog post please post them below in the comment section and I will try to answer them as soon as possible.

[/et_pb_text][/et_pb_column][/et_pb_row][/et_pb_section]


ReplyQuote
Keith Smalling
 Keith Smalling
(@Keith Smalling)
Guest
Joined: 4 months  ago
Posts: 1
04/07/2018 11:28 pm  

Excellent content


ReplyQuote
Share:
  
Working

Please Login or Register