* As usual, Microsoft are completely unable to properly process UTF-8 content, even if
the response from an Invoke-WebRequest query explicitly specifies "charset=utf-8".
* So, once again, we need to force PowerShell's hand to treat the content as UTF-8.
* Also improve the default error message if we can't get it from Microsoft.
* This simplifies things quite a bit since we were converting HTML to XML to JSON before.
* Also drop the custom User Agent for now.
We'll have to see how long it takes Microsoft to go back to filtering out PowerShell...
* Closes#98.
* Gotta really praise Microsoft for having designed their download servers to
handle multiple archs for the same Windows SKUs... and then completely throw
that out of the window to instead make Windows 11 ARM64 a different SKU.
* Now, because we don't want to be *AS MORONIC AS MICROSOFT*, we go the extra
mile (and issue multiple requests, using multiple session IDs) to make the
ARM64 *ARCHITECTURE* fall into the fold of where it belongs, i.e. as a user
selectable property of a single Windows 11 release.
* Closes#97.
* Drop Korean exception, since Microsoft no longer serves Korean specific images, and simplify Chinese exceptions.
* Drop Windows 7 ISO handling, since Microsoft no longer serves Windows 7 ISOs.
* Update Firefox user agent version.
* Add a new -Debug switch to dump responses, and simplify verbosity handling.
* It looks like Microsoft are actively filtering our script by detecting our first request with the
spoofed user-agent, so work around that.
* Also switch to using 'curl' instead of 'Invoke-WebRequest'. May break PowerShell 7.0, but I'm only
concerned about Rufus usage for now.
* Also add timeouts on web requests.
* Closes#88.
* Also fix Windows 11 23H2 build version since Microsoft are *UTTERLY USELESS*
at providing an accurate product version number in the .wim's XML versioning
files they are in bloody charge of populating...
* Replaces Windows 11 22H2, since past history indicates that Microsoft is
not going to keep the Windows 11 22H2 ISOs available for much longer.
* Note that Microsoft has *no* plans to ever release a Windows 10 23H2.
* Closes#76.
* Per #58, we consider that letting non-Windows users run Fido is going to become
too much of liability moving forward, so the script now detects non Windows
platforms and actively prevent itself from running there.
* Closes#60.
* Also some whitespace cleanup.
* Simplify regex and fix unconverted characters.
* Also use Start-BitsTransfer for cmdline downloads (Closes#56).
* Also remove -DisableProgress now that we use Start-BitsTransfer.
* Non En locales may still return '<select id="product-languages">' instead of
'<select id="product-languages" ...>' so make sure we account for that case.
* Addresses pbatard/rufus#2148
* Also force TLS for Windows 8.x to address pbatard/rufus#2133
* The Microsoft servers now use session Id whitelisting, so add querying
of https://vlscppe.microsoft.com/tags with the session Id.
* Closes#52.
* Also harmonize/improve -replace calls
* Also make sure we use POST for the getskuinformationbyproductedition
query (in case Microsoft add some more countermeasures).
* Also drop 'cmd /c' invocation in sign.sh since the cygwin people can't
seem to get their act together there...
* "How many Microsoft engineers does it take to release the ISO of a light bulb?"
* This addresses #45 by restoring a working Windows 11 22H2 download, though it
remains to be seen if the ISO for 22H2 v0 will be accessible ever again...
* Per #41 Microsoft appear to have altered their website to make it hostile to our script.
* Considering that trying to troubleshoot this is likely to take a long while, and that I
sure could use some help with it, add a notice about this whole mess...