I’ve previously written a post on this topic, demonstrating a custom method that could be used before ConfigMgr had native support for the BIOS to UEFI conversion. However, that post should now be deemed obsolete (or until you’ve upgraded your environment to ConfigMgr Current Branch version 1610). In order to be able to take advantage of many of the security improvements witih Windows 10, running your systems in UEFI mode instead of BIOS (also referred to as Legacy) is a requirement.
As for this topic, I decided to split it up in separated parts as where this introduction covers the changes made in ConfigMgr 1610 and how it can be leveraged in general, and the upcoming parts will go into details per manufacturer:
- Convert from BIOS to UEFI during Windows 10 deployments with ConfigMgr Current Branch – Introduction
- Convert from BIOS to UEFI on Dell systems with ConfigMgr Current Branch – Part 1
- Convert from BIOS to UEFI on HP systems with ConfigMgr Current Branch – Part 2
- Convert from BIOS to UEFI on Lenovo systems with ConfigMgr Current Branch – Part 3
Native support for BIOS to UEFI conversion
With the release of ConfigMgr 1610, we can now in a native way perform a BIOS to UEFI conversion during a Windows 10 deployment (bare metal or refresh, not supported for in-place upgrade). In the past, the problem that many encountered by attempting to make the switch, not only that it requires a hard disk table layout change from MBR to GPT (which requires a complete format and re-partitioning), was that when the task sequence engine attempting to stage the Windows Pre-installation Environment (WinPE) as it was about to restart, it would not do so properly. When the system came back up after the restart, it failed to boot into WinPE and the task sequence broke.
What’s improved with 1610, is the fact that the task sequence engine can now prepare the system for a restart between BIOS and UEFI. This allow us to continue the task sequence after the restart, and not have to perform any potentially unsupported modification of built-in task sequence variables or re-starting the sequence all over (like I did in my previous custom solution). What happens behind the scenes is that the reboot code in the task sequence engine will prepare a boot system for UEFI, and completely ignore the current firmware mode (BIOS) which was how it worked in the past for version prior to ConfigMgr 1610. In order to circumvent issues where the engine might not detect any suitable drive for the UEFI boot system, you configure the exact disk and partition that should be prepared by pointing out a FAT32 partition (with GPT) and assign that partition a variable that allows for the reboot code to prepare the boot system properly for a BIOS to UEFI switch and restart.
It’s important to mention that this conversion process that’s now natively supported in ConfigMgr Current Branch, does not handle the different OEM conversion steps that’s required. You’ll still have to add those into your task sequence for the conversion to take place.
Task Sequence configuration
Since this post is about the improvements and general configuration of how this can be implemented (see Part 1-3 for specific configuration per manufacturer), what’s shown below should not be seen as the explicit configuration for your specific needs. It’s more of a general overview of the steps required and that you need to be aware of when implementing them into your task sequence intended for deploying Windows 10, and dealing with the conversion from BIOS to UEFI.
BIOS to UEFI Conversion
Restart in WinPE
|Selection||The boot image assigned to this task sequence|
|Condition||Task Sequence Variable:|
_SMSTSInWinPE equals FALSE
|Type||Run Command Line / Install Package / Run PowerShell Script|
|Description||This step should be replaced with the appropriate steps necessary to perform the BIOS to UEFI conversion on a per manufacturer basis|
Format and Partition Disk
Up until now, we’ve gone through how to place the different steps and configure them for a native ConfigMgr task sequence. However, there’s a high usage of the MDT integrated task sequence out there, so below is a suggestion for how you could potentially add the BIOS to UEFI conversion in your MDT integrated task sequence, to support both the New Computer and Refresh scenarios.
I’d suggest that you test out what works in your specific environment and task sequence in terms of what steps are required in what order. No task sequence is like another, so it’s important that you properly test and validate the required steps necessary for a successful BIOS to UEFI conversion. In the upcoming blog posts I’ll cover how you can configure the conversion on a more detailed level per manufacturer, starting with Dell.