(133) Windows 11 Pro Not Upgrading to Windows 11 Enterprise
- Mr B SOE way
- Jun 24, 2024
- 2 min read
A customer reached out for help in regards to Windows 11 Pro is not automatically activating to Windows 11 Enterprise. There is a KB: KB5036980 which breaks the Windows 11 Enterprise subscription activation. Also Rudy has mentioned about it too, kudos to him!
To make nice and easy, what you can is deploy it as a Win32 App package.
# Define the registry key path and value
$registryPath = "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\MfaRequiredInClipRenew"
$registryValueName = "Verify Multifactor Authentication in ClipRenew"
$registryValueData = 0 # DWORD value of 0
$sid = New-Object System.Security.Principal.SecurityIdentifier("S-1-5-4")
# or SID S-1-5-4 for the interactive group
# Check if the registry key already exists
if (-not (Test-Path -Path $registryPath)) {
# If the key doesn't exist, create it and set the DWORD value
New-Item -Path $registryPath -Force | Out-Null
Set-ItemProperty -Path $registryPath -Name $registryValueName -Value $registryValueData -Type DWORD
Write-Output "Registry key created and DWORD value added."
} else {
Write-Output "Registry key already exists. No changes made."
}
# Add read permissions for SID (S-1-5-4,interactive users) to the registry key with inheritance
$acl = Get-Acl -Path $registryPath
$ruleSID = New-Object System.Security.AccessControl.RegistryAccessRule($sid, "FullControl", "ContainerInherit,ObjectInherit", "None", "Allow")
$acl.AddAccessRule($ruleSID)
Set-Acl -Path $registryPath -AclObject $acl
Write-Output "Added 'Interactive' group and SID ($sid) with read permissions (with inheritance) to the registry key."
#Start the scheduledtask
Get-ScheduledTask -TaskName 'LicenseAcquisition' | start-scheduledtask
#Start-Process "$env:SystemRoot\system32\ClipRenew.exe"
$Path = "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\MfaRequiredInClipRenew"
$Name = "Verify Multifactor Authentication in ClipRenew"
$Type = "DWORD"
$Value = "0"
Try {
$Registry = Get-ItemProperty -Path $Path -Name $Name -ErrorAction Stop | Select-Object -ExpandProperty $Name
If ($Registry -eq $Value){
Write-Output "Detected"
Exit 0
}
Exit 1
}
Catch {
Exit 1
}
Package the application with the Intune wrapper: https://github.com/Microsoft/Microsoft-Win32-Content-Prep-Tool
Program:
Install command: powershell.exe -executionPolicy bypass -file "./Install.ps1"
Uninstall command: uninstallcmdline
Detection:
Rules format: Use a custom detection script
Run script as 32-bit process on 64-bit clients: No Enforce script signature check and run script silently: No
Deploy as required to your test group.
Then add it to your ESP as required for it take effect.
Comments