How to Bypass Windows 11 System Requirements in One Command


Win0x

New member
Local time
6:35 PM
Posts
2
OS
Win11
I created this PowerShell script at work to make my life easier by bypassing Windows 11 system requirements, allowing Windows 10 to upgrade via Windows Update to the latest Windows 11 version. It also works for upgrading an unsupported Windows 11 system to a newer version.
I've tested this on multiple machines with great success. After running this script, you should also be able to upgrade using a Windows 11 ISO by running setup.exe directly.

What This Script Does​

  • Bypasses Windows 11 hardware checks, including TPM, Secure Boot, RAM, and CPU restrictions.
  • Removes Windows Update compatibility restrictions, allowing upgrades through Windows Update.
  • Disables the "System Requirements Not Met" watermark.
  • Attempts to block telemetry and compatibility scans that could revert the registry changes in future updates.
  • Targets the latest Windows 11 24H2 update

How to Use​

1. Open PowerShell as Administrator
2. Run the following command:

Powershell:
iwr -useb "https://raw.githubusercontent.com/Win11Modder/Win11-Req-Bypass/main/Win11_Bypass.ps1" | iex
3. Restart your computer

Notes​

The script also tries to prevent Windows Updates from restoring blocked registry values by disabling automatic tasks related to CompatTelRunner.exe. This should help ensure that major version upgrades continue to install normally. However, if Microsoft introduces new restrictions or makes major changes, I'll try to update the script accordingly.

For issues related to Windows Update freezes, cache problems, or failed updates, I have also added a Windows Update reset feature. This can be executed using the -r parameter:
Unfortunately, this option does not work when running the script via iwr | iex, so you must first download the script from GitHub manually.

GitHub Repository: Win11-Req-Bypass

Use at your own risk, and let me know if you run into any issues!

Feedback is appreciated!
 

My Computer

System One

  • OS
    Win11
    Computer type
    Laptop
Is the github thing yours or are you just pinching it?
 

My Computers

System One System Two

  • OS
    Windows 11 Pro 24H2 26100.2894
    Computer type
    Laptop
    Manufacturer/Model
    Acer Swift SF114-34
    CPU
    Pentium Silver N6000 1.10GHz
    Memory
    4GB
    Screen Resolution
    1920 x 1080
    Hard Drives
    SSD
    Cooling
    fanless
    Internet Speed
    150 Mbps
    Browser
    Brave
    Antivirus
    Webroot Secure Anywhere
    Other Info
    System 3

    ASUS T100TA Transformer
    Processor Intel Atom Z3740 @ 1.33GHz
    Installed RAM 2.00 GB (1.89 GB usable)
    System type 32-bit operating system, x64-based processor

    Edition Windows 10 Home
    Version 22H2 build 19045.3570
  • Operating System
    Windows 11 Pro 23H2 22631.2506
    Computer type
    Laptop
    Manufacturer/Model
    HP Mini 210-1090NR PC (bought in late 2009!)
    CPU
    Atom N450 1.66GHz
    Memory
    2GB
    Browser
    Brave
    Antivirus
    Webroot
Might want to add to readme that if no powershell script has ever run on target machine, and is disallowed, that people run something like this first:
powershell Set-ExecutionPolicy RemoteSigned
before running the ps1 script.

Edit:
Tested the script (without -r) in an empty test vm with a fresh 23h2, that did not get offerd to update to 24h2 yet.
Without rebooting the machine, will directly find the update.
1739455783746.webp
 
Last edited:

My Computer

System One

  • OS
    Windows 11
    Computer type
    PC/Desktop
Is the github thing yours or are you just pinching it?
Yes, this is my alt account. My main GitHub account is mostly work-related, and I didn’t want to mix this project with it, so I created a new account. I might post more similar projects in the future


Might want to add to readme that if no powershell script has ever run on target machine, and is disallowed, that people run something like this first:
powershell Set-ExecutionPolicy RemoteSigned
before running the ps1 script.

Edit:
Tested the script (without -r) in an empty test vm with a fresh 23h2, that did not get offerd to update to 24h2 yet.
Without rebooting the machine, will directly find the update.
View attachment 125277


Yes, goo point! I've added this to the README. However, this does not affect execution when running the script via iwr | iex, since PowerShell treats it as a direct command rather than a script file. When using iwr | iex, PowerShell doesn't check the execution policy because it processes the script in memory instead of saving it as a .ps1 file.
 

My Computer

System One

  • OS
    Win11
    Computer type
    Laptop
Welcome to ElevenForum.

Several of your script's HW bypass reg keys are ignored (useless) in a live upgrade scenario. Those keys only apply to clean installs.

BypassTPMCheck
BypassRAMCheck
BypassSecureBootCheck
BypassCPUCheck


When WinPE Setup runs, it checks for any HW bypass keys and doesn't look at any cached compatibility data. The reason is you may be installing to a clean disk which doesn't have any Windows folder. Only the first 3 keys listed above are real, all other purported Bypass* keys are bogus.

I hope you can test a script without any of those keys, and confirm they have no effect on the upgrade process. This topic has been covered by Paul Batard (Rufus) and Michael Niehaus (OOFHours) in more detail.
 

My Computer

System One

  • OS
    Windows 7
Did not know that! I always download the script / read it, before running it. I never run script from internet directly.

Anyway after installing on my test machines, this option is grayed out:
1739463269048.webp

I would suggest making a second ps1 script, to run after installation, to revert to some of the settings back.

Powershell:
$WinUpdatePath = "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate"
Remove-ItemProperty -Path $WinUpdatePath -Name "ProductVersion" -Force
Remove-ItemProperty -Path $WinUpdatePath -Name "TargetReleaseVersion" -Force
Remove-ItemProperty -Path $WinUpdatePath -Name "TargetReleaseVersionInfo" -Force
Restart-Service -Name wuauserv -Force

After his, the option is back available for the users again.
 

My Computer

System One

  • OS
    Windows 11
    Computer type
    PC/Desktop

Similar threads

Back
Top Bottom