We noticed the same thing, looks like in the “specialize” phase Windows setup adds itself as the first entry. I didn’t see any option in the unattend.xml file to disable or alter this, and we didn’t want to use a Dell utility since we have other hardware, so we put this in the custom script we have running at the end of the “specialize” phase:
bcdedit /set {fwbootmgr} displayorder {bootmgr} /addlast
This moves the active Windows boot manager (which was just added and is referenced by {bootmgr}) to the end of the list. The {fwbootmgr} apparently references the system UEFI firmware. If you have more boot options you want in a specific order, you might be better off trying to move the PXE boot option to the top. Also, since you mentioned Bitlocker, I’ve seen posts indicating that you need to have the Windows Boot Manager first if you’re using Bitlocker, so you might not be able to do this anyway.
Since Windows setup will just keep adding more boot managers to the UEFI list every time you image (when it goes through setup), we also added this block to our script to remove old entries:
for /F "tokens=2 delims={}" %%i in ('bcdedit.exe /enum {fwbootmgr}') do (
if "%%i" NEQ "fwbootmgr" (
if "%%i" NEQ "bootmgr" (
echo Checking %%i for old Windows boot manager...
bcdedit.exe /enum {%%i} | find /C "Windows Boot Manager" >nul
if errorlevel 1 (
echo Not old Windows UEFI boot manager.
bcdedit.exe /enum {%%i} | find "description"
) else (
echo Found Windows UEFI boot manager from previous installation, removing...
bcdedit.exe /enum {%%i}
bcdedit.exe /delete {%%i}
)
)
)
)
This will enumerate the UEFI boot list for Windows boot managers excluding the active one, and remove them, so you don’t keep adding an entry every time you image the computer. I would recommend testing this first if you’re going to use it, I have only tested it a couple times