WhyNotWin11 tells you what blocks the upgrade, and stops there
Detection Script to help identify why your PC is not Windows 11 Release Ready. Now Supporting Update Checks!
At a glance
- What is it?
- WhyNotWin11 is an AutoIt script that reports why a PC fails the Windows 11 Release Ready checks, shipped as one executable. It is exact about the machine it runs on and silent about which checks it makes, where the report goes, and what happened after 2.3.0.5 on Wine.
- Who is it for?
- Run WhyNotWin11 on a single machine when you need a written reason the upgrade is blocked, and compile WhyNotWin11.au3 yourself if the trust question matters to you. Skip it for fleet migrations, for machines below Windows 8.1 unless you accept running under /force, and for any host that is not Windows, since 2.3.0.5 is the last WhyNotWin11 version known to run on Wine.
- Can I use it commercially?
- Yes, with conditions. LGPL-3.0 is a weak copyleft licence: you can use it inside commercial and closed-source software, but if you distribute changes to its own files, you must publish those changes under the same licence.
- Is it still maintained?
- Activity is slowing. The repository last received commits 6 months ago.
- What is it written in?
- Mainly AutoIt, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on November 13, 2026, and from our analysis. They are not legal advice.
Star history
- rcmaehl/WhyNotWin116,383 ★ · -7
| Repository | 2026-09-23 | 2026-11-13 |
|---|---|---|
| rcmaehl/WhyNotWin11 | 6.4k | 6.4k |
-7 Stars in the last 51 days, measured from the daily GitHub snapshot. Compare with other projects
Editorial analysis
One exe answers one question about the machine under it
WhyNotWin11 answers a single question about the machine it runs on: which checks stop that PC from being Windows 11 Release Ready, with update checks on top. There is nothing to install and nothing to register. The whole program is one AutoIt script, WhyNotWin11.au3, with helper code under includes/ and interface files under Themes/, compiled into WhyNotWin11.exe.
That narrowness is the design rather than a limitation of effort. You get a verdict for one system, and every change the verdict implies stays yours to make. Nothing is provisioned, patched or scheduled on your behalf, and WinPE is listed among the minimum supported systems.
The project keeps a separate homepage at whynotwin11.org and its default branch is main. The primary language is AutoIt, which matters for anyone who wants to read the checks rather than trust them.
The 40 MB floor sits far below the 100 MB recommendation
The system requirements table has two columns, a minimum and a recommendation, and they differ widely. Operating system: WinPE or Windows 8.1 at minimum, the latest Windows 10 build recommended. CPU: a 32-bit single core at minimum, a 64-bit dual core or higher recommended. Memory: 40MB free at minimum, 100MB free recommended. Storage: 5MB free at minimum, 100MB free recommended.
Read the minimum column as the point where the script starts, not the point where it is comfortable. A 5MB storage minimum against a 100MB recommendation is a twenty-fold gap, and 40MB of free memory is what the executable needs while everything else on the machine is competing for the rest. The recommended column is the figure worth designing around.
Notice what is missing from that table. No dependency, no redistributable and no runtime appear anywhere in it, which is consistent with the project shipping a single compiled file rather than a package that needs a host.
Running the release exe is the entire installation
The stable channel is one file, WhyNotWin11.exe, linked from the project's releases page. Fetch it and run it. There is no installer to uninstall, no service to stop and no configuration file to clean up afterwards, which makes it equally at home on a working desktop and on a machine you have booted into WinPE.
A shell fetch of that published path looks like this:
wget https://github.com/rcmaehl/WhyNotWin11/releases/latest/download/WhyNotWin11.exeWhat the documentation does not give you is a way to drive it. There is no documented headless mode, no report file to write, no exit code and no command line parameter other than /force, so there is nothing here to wrap in a deployment pipeline yet. Budget on reading the window it opens on the machine you launched it from.
Compiling WhyNotWin11.au3 is the path you can read
AutoIt is the primary language, and the source is WhyNotWin11.au3 calling into includes/. The build route runs through the official AutoIt Full Installation, then a right click on WhyNotWin11.au3 inside the WhyNotWin11 directory and Compile Script (x64), or the x86 option if your Windows install is 32-bit. That step writes WhyNotWin11.exe into the same directory.
You get the tree either from the zip of main or from a clone:
git clone https://github.com/rcmaehl/WhyNotWin11Both routes land on the same files. CONTRIBUTING.md holds the coding and pull request rules, Langs/0000-translating-guidelines.md explains how to help with translations, and security.txt is where a report about the tool is supposed to go. Compiling yourself costs an AutoIt install and settles the trust question permanently: the bytes you run are the bytes you built from the script sitting in front of you.
/force runs it where the project calls the system unsupported
One footnote carries the whole escape hatch: WhyNotWin11 can be forced to run on Unsupported Systems using the /force parameter, no support will be given for this parameter. Two things follow from that sentence. The script will print a verdict on a machine its author considers out of scope, and nobody will help you read the result. Windows 7 sits below the documented minimum of WinPE or Windows 8.1, so on such a machine /force is the only documented way to see anything.
WhyNotWin11.exe /forceUse it when the question is diagnostic rather than when the answer carries weight. A clean result produced under /force came from a run that falls outside the assumptions behind the requirements table, a 32-bit single core with 40MB of free memory as the assumed floor, and no support statement covers the gap between that assumption and your hardware. Nothing here promises the machine will run Windows 11.
The report names the block, it does not remove it
What comes out of WhyNotWin11 is a list of reasons. Where that list goes afterwards is outside the tool. There is no documented remediation, no automatic registry edit, no driver update and no way to export, schedule or diff the result. For a fleet migration this is a script you run on one machine at a time and read with your own eyes, which is a fair trade for a tool that needs nothing installed.
It also does not enumerate its own checks. The documentation names the project and its purpose but never lists the individual requirements it inspects, so you cannot predict the output before running it, and you cannot tell from the documentation which line of the report maps to which requirement. Plan for the manual work of matching each line against Microsoft's own requirement list, and for the possibility that a line names a requirement the documentation never mentioned.
The same silence applies to update checks. The description advertises them and the project does not say whether they notify, download or install anything.
Wine stopped at 2.3.0.5, so macOS and Linux are simply out
The README is blunt about platforms: other operating systems are unsupported, and the last version known to run on Wine is 2.3.0.5. That version number is the whole sentence worth reading twice. Every release after it carries no statement about Wine, so running the current build on macOS or Linux is untested by the project's own account.
The release names show how much happened on the other side of that line. 2.6.1.0 was published on 2024-07-07 as Skipping to a new Version, 2.6.1.1 followed on 2024-10-10 as May I have your opinions, please?, and 2.7.0 arrived on 2025-10-07 as A New Coat of Paint. The Wine boundary cuts across all three.
For a macOS or Linux user the workable route is a Windows virtual machine on the machine being diagnosed. The verdict then describes that guest's hardware rather than the host, and the documentation does not discuss that difference.
Langs/ and Themes/ are the seams you can work on without the script
Languages live in Langs/, with Langs/0000-translating-guidelines.md telling contributors how to add one. Themes/ holds the interface files, Assets/ holds bundled resources and includes/ holds the helper code the main script calls. Each is a place to work without reading WhyNotWin11.au3 line by line, which is the cheapest contribution available to anyone whose AutoIt is better than their Windows build knowledge.
The licence is LGPL-3.0, the project calls itself free and open source and the full text sits in LICENSE. That choice shapes what you may do with the shipped binary as much as with the source, so read LICENSE before redistributing WhyNotWin11.exe inside anything.
The last push to main was on 2026-05-14 and the repository is not archived, while the stable download is still release 2.7.0 from 2025-10-07. Testing builds arrive as WNW11.zip from the project's nightly build page, and the documentation warns that you have to update those by hand.
Editorial conclusion
Run WhyNotWin11 on a single machine when you need a written reason the upgrade is blocked, and compile WhyNotWin11.au3 yourself if the trust question matters to you. Skip it for fleet migrations, for machines below Windows 8.1 unless you accept running under /force, and for any host that is not Windows, since 2.3.0.5 is the last WhyNotWin11 version known to run on Wine. Verify first that release 2.7.0 still reflects what you need, since the last push to the repository was on 2026-05-14 while that binary was published on 2025-10-07.
Frequently asked questions
How do I use WhyNotWin11?
Download WhyNotWin11.exe from the project's releases page and run it on the machine you want to check. The only command line parameter the documentation mentions is /force, which runs the script on systems it calls unsupported, and no support is offered for that parameter.
What is the WhyNotWin11 exe?
It is the compiled form of the AutoIt script WhyNotWin11.au3, produced by choosing Compile Script (x64) in the official AutoIt Full Installation. Stable builds are published as WhyNotWin11.exe, while testing builds arrive as WNW11.zip from the project's nightly build page and have to be updated by hand.
Is WhyNotWin11 safe?
The project is free and open source under the LGPL-3.0 licence, and the source is available as WhyNotWin11.au3 with helper code under includes/. You can compile it yourself with the official AutoIt Full Installation instead of trusting the published binary. The documentation mentions no code signing or checksum for the download.
What is an alternative to WhyNotWin11?
The project's documentation names no alternative. The closest widely known counterpart is Microsoft's own PC Health Check, a vendor tool that only answers the eligibility question, where WhyNotWin11 is a script you can read, compile and extend through Langs/ and Themes/.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/rcmaehl-whynotwin11)Star history chart for your README
[](https://hysenlabs.com/projects/rcmaehl-whynotwin11)Was this useful?