Rufus, the popular utility used to prepare Windows bootable media, among other things, has encountered a major problem. Apparently, Microsoft seems to have blocked its ability to download ISOs through the help of the Fido script. The Fido script is PowerShell-based and essentially automates access to official Microsoft download links.
A GitHub user voltagex noted the issue when he was unable to download Windows 10 21H2 Build 19044.1288 with an error saying “Failed to retrieve server architecture”.
The problem was later confirmed by Fido developer Pete Batard, who found that Microsoft had hardened its servers to block such download requests through Fido. And Batard seems pretty sure it’s a “deliberate change.” He says:
Well, upon further investigation, it does appear that Microsoft made their website deliberately hostile to our script requests. The only query that works for GetProductDownloadLinksBySku is the one that is sent internally from the Microsoft webpage, because trying to copy/paste this request into another browser window, or even trying to issue it manually from the same window now throws an error, whereas this was not the case before.
whereas previously one could send independent HTTP requests like https://www.microsoft.com/en-gb/api/controls/contentinclude/html?pageId=76ddb7de-ec0a-49c3-a699-a2dda9cc8497&host=www.microsoft.com&segments=software-download,windows11&query=&action=GetProductDownloadLinksBySku&sessionId= b0f1baab-5d74-4f53-b5a1-35810339c3c3&skuId=13489&language=International English&sdVersion=2 to retrieve the content, Microsoft has changed its server so that if you now try to send it outside of the https://www.microsoft.com/en-gb/software-download/windows11 context, you now get an error, and that’s where the problem lies.
It’s a deliberate change if I ever saw one
The download error message has been replaced with the following:
The Fido version 1.30 changelog now shows:
Disable Windows 8 → Windows 11 ISO Downloads
It looks like Microsoft has deliberately made their download servers hostile to our script, and trying to fix this might take a long time… 😞
Batard also asked for help to this case fellow developers.
Update: The problem has been solved thanks to the developer William Bulin
The changelog has been updated for the new Fido version 1.31 which now shows: