Guide for installing Windows 11 Pro on devices with OEM Home edition keys embedded in BIOS/UEFI firmware.

Problem Overview

Many OEM devices (Dell, HP, Lenovo, etc.) have Windows Home product keys embedded in the BIOS MSDM table. During Windows Setup, this key is detected automatically and forces Home edition installation, bypassing edition selection entirely.

This causes issues for:

  • Autopilot deployments (Home cannot join Entra ID)
  • Enterprise environments requiring Pro features
  • Domain join scenarios

Solution Methods

MethodBest ForRequires
ISO ModificationFuture deployments, multiple devicesAnyBurn or 7-Zip, ISO access
Post-Install UpgradeImmediate need, single deviceTime for reset cycle

Inject ei.cfg and pid.txt into the Windows ISO to force Pro edition selection.

Why Both Files Are Required (Windows 11 24H2+)

Windows VersionRequirement
Pre-24H2ei.cfg alone worked
24H2+ei.cfg + pid.txt required

The “Modern Setup” in 24H2 treats clean installs like upgrades, checking BIOS keys first. The pid.txt forces the installer to use the specified key instead.

Step 1: Create Configuration Files

Run in PowerShell:

# ei.cfg - Forces Pro edition
@"
[EditionID]
Pro
[Channel]
_Default
[VL]
0
"@ | Out-File "$env:USERPROFILE\Desktop\ei.cfg" -Encoding ASCII

# pid.txt - Generic Pro installer key
@"
[PID]
Value=VK7JG-NPHTM-C97JM-9MPGT-3V66T
"@ | Out-File "$env:USERPROFILE\Desktop\pid.txt" -Encoding ASCII

Write-Host "Files created on Desktop" -ForegroundColor Green

Step 2: Install Required Tools

7-Zip (for viewing) and AnyBurn (for editing):

# Install 7-Zip
$url = "https://www.7-zip.org/a/7z2408-x64.exe"
$output = "$env:USERPROFILE\Desktop\7z-setup.exe"
Invoke-WebRequest -Uri $url -OutFile $output
Start-Process -FilePath $output -ArgumentList "/S" -Wait

# Install Anyburn

winget install --id PowerSoftware.AnyBurn

Step 3: Inject Files Using AnyBurn

  1. Open AnyBurn
  2. Click “Edit image file”
  3. Browse to Windows ISO (e.g., Win11_25H2_English_x64.iso)
  4. Navigate to sources folder
  5. Click Add > select ei.cfg from Desktop > Open
  6. Click Add > select pid.txt from Desktop > Open
  7. Click Next
  8. Select “Save as a new file” or “Overwrite original”
  9. Click “Create Now”
  10. Wait for completion

Step 4: Verify (Optional)

Using 7-Zip:

  1. Right-click modified ISO > 7-Zip > Open archive
  2. Navigate to sources
  3. Confirm ei.cfg and pid.txt are present

Alternative: Ventoy Injection

If using Ventoy USB boot, create injection folder structure:

$usbDrive = "E:"  # Your Ventoy USB letter
$isoName = "Win11_25H2_English_x64"  # ISO name without .iso

$path = "$usbDrive\ventoy\injection\$isoName\sources"
New-Item -ItemType Directory -Path $path -Force

@"
[EditionID]
Pro
[Channel]
_Default
[VL]
0
"@ | Out-File "$path\ei.cfg" -Encoding ASCII

@"
[PID]
Value=VK7JG-NPHTM-C97JM-9MPGT-3V66T
"@ | Out-File "$path\pid.txt" -Encoding ASCII

Write-Host "Ventoy injection files created" -ForegroundColor Green

Note: YUMI’s Ventoy integration may not support injection. Standard Ventoy does.


Method 2: Post-Install Upgrade (Workaround)

Install Windows Home, bypass OOBE, upgrade to Pro, then reset.

Step 1: Bypass Network Requirement

At OOBE network screen, press Shift+F10 to open Command Prompt:

start ms-cxh:localonly

This immediately triggers the local account creation flow without requiring a reboot.

Note: The older oobe\bypassnro command no longer works on recent Windows 11 builds.

Step 2: Complete OOBE with Local Account

  1. Local account creation screen appears
  2. Create local account (any name/password)
  3. Complete remaining OOBE screens
  4. Reach desktop

Step 3: Upgrade to Pro

Open PowerShell as Administrator:

slmgr /ipk VK7JG-NPHTM-C97JM-9MPGT-3V66T

Wait for confirmation dialog. Device is now Pro (unactivated).

Step 4: Configure Regional Settings

# Set timezone to GMT/UK
Set-TimeZone -Id "GMT Standard Time"

# Set system locale to UK English
Set-WinSystemLocale -SystemLocale en-GB

# Set region to UK
Set-WinHomeLocation -GeoId 242

# Set culture
Set-Culture -CultureInfo en-GB

# Set display language override
Set-WinUILanguageOverride -Language en-GB

Restart required for locale changes.

Apply all updates before reset. These will be preserved with local reinstall.

# Check for updates
winget upgrade --all --accept-package-agreements --accept-source-agreements

Or via Settings > Windows Update.

Step 6: Reset to OOBE

  1. Settings > System > Recovery
  2. Reset this PC
  3. Select “Remove everything”
  4. Select “Local reinstall” (preserves Pro + updates)
  5. Select “Just remove my files”
  6. Confirm and reset

Device reboots into OOBE with Pro edition. Autopilot will now detect and work.


Configuration File Reference

ei.cfg Options

[EditionID]
Pro
[Channel]
_Default
[VL]
0
FieldOptionsNotes
EditionIDPro, Home, Education, Enterprise, or blankBlank shows selection screen
ChannelRetail, _Default, OEM, Volume_Default recommended
VL0 or 10 = not volume license

pid.txt Format

[PID]
Value=XXXXX-XXXXX-XXXXX-XXXXX-XXXXX

Generic Windows 11 Keys (Installation Only)

EditionKey
ProVK7JG-NPHTM-C97JM-9MPGT-3V66T
HomeYTMG3-N6DKC-DKB77-7M9GH-8HVX7
EnterpriseNPPR9-FWDCX-D2C8J-H872K-2YT43
EducationNW6C2-QMPVW-D7KKK-3GKT6-VCFB2

These keys select edition only - do not activate Windows. Activation occurs via actual license, digital entitlement, or Intune policy.


BIOS Options (If Available)

Some BIOS/UEFI have option to disable embedded key:

ManufacturerLocationSetting Name
DellAdvanced > System ConfigurationOS Key Provisioning
HPAdvanced > System OptionsWindows OS License Key
LenovoSecurity or AdvancedOS Optimized Defaults
ASUSAdvanced > Windows OS ConfigurationWindows License / MSDM

If disabled, edition selection appears without needing ei.cfg/pid.txt.

Note: Consumer devices often lock this setting. Business-class machines (OptiPlex, ProDesk, ThinkCentre) more likely to expose it.


Post-Reset Behaviour

Reset TypePro PreservedUpdates Preserved
Local reinstallYesYes
Cloud downloadMay revert to HomeNo
Fresh USB installReverts to HomeNo

To permanently preserve Pro after any reset, link to Microsoft account:

  1. Settings > Accounts > Sign in with Microsoft account
  2. Settings > System > Activation
  3. Confirm “Windows is activated with a digital license linked to your Microsoft account”

Troubleshooting

ei.cfg/pid.txt Not Working

  • Verify files are in sources folder (not root)
  • Check file encoding is ASCII (not UTF-8 with BOM)
  • Confirm exact filename (case-sensitive on some systems)
  • For 24H2+, both files required

Autopilot Still Fails After Pro Upgrade

  • Reset was not “Local reinstall” (used Cloud download)
  • Pro upgrade didn’t complete before reset
  • Profile not assigned in Intune

“This account can’t be used with this edition”

  • Windows Home cannot join Entra ID
  • Must upgrade to Pro before Autopilot enrolment

References