Fido: 用于Microsoft Windows和UEFI Shell ISO的PowerShell下载脚本
描述
Fido是一个PowerShell脚本,主要设计用于Rufus,但也可以独立使用。其目的是自动获取官方Microsoft Windows零售版ISO下载链接,并提供方便访问可启动UEFI Shell镜像的途径。
这个脚本的存在是因为,尽管Microsoft确实免费公开提供零售版ISO下载链接(至少从Windows 8到Windows 11),但直到最近的发布版本,大多数这些链接只有在强制用户经过许多不必要的繁琐步骤后才能获得。这创造了一种极其低效,甚至可以说是不友好的用户体验,极大地偏离了人们真正想要的东西(直接访问ISO下载)。
至于为什么有人想下载Windows 零售版 ISO,而不是使用Microsoft自己的媒体创建工具(MCT)生成的ISO,这是因为使用官方零售版ISO目前是唯一能够绝对确定操作系统内容未被更改的方法。事实上,由于每个版本只存在一个主版本,Microsoft零售版ISO是唯一可以获得官方SHA-1值的版本(从MSDN获取,如果你有访问权限,或者从像这样的网站获取),让你100%确定你使用的镜像未被损坏且安全可用。
反过来,这提供了保证,你 用来安装操作系统的内容,如果你对安全性有丝毫担忧,确实至关重要的是事先验证,确实与Microsoft发布的内容逐位匹配。
另一方面,无论Microsoft的媒体创建工具以何种方式生成其内容,由于没有两个MCT ISO是完全相同的(因为MCT总是即时重新生成ISO内容),目前无法绝对确定由MCT生成的任何ISO是否安全可用。特别是,与零售版ISO不同的是,无法判断MCT ISO在生成后是否可能已被损坏。
因此,有必要为用户提供一种更简单、限制更少的方式来访问官方零售版ISO...
许可证
GNU通用公共许可证版本3.0或更高版本。
工作原理
该脚本基本上执行与访问以下URL相同的操作(即,对于Windows 10,前提是你还更改了User-Agent
浏览器字符串,因为Microsoft网络服务器检测到你使用的Windows版本与你尝试下载的版本相同,它们可能会将你__重定向__离开允许获取直接ISO下载链接的页面):
https://www.microsoft.com/en-us/software-download
在检查对Microsoft软件下载网站的基本访问后,脚本首先查询来自Microsoft服务器的Web API,请求所选Windows版本可用的语言选择,然后请求该语言+版本所有可用架构的实际下载链接。
要求
Windows 8或更高版本,安装有PowerShell。不 支持Windows 7。
命令行模式
Fido支持命令行模式,只要提供以下选项之一,就不会启动GUI,而是可以在PowerShell控制台或脚本中生成ISO下载。
但请注意,截至2023年5月,Microsoft已移除了对较旧版本Windows ISO的访问,因此,可从Fido下载的版本列表已不得不减少到仅包含每个版本的最新版本。 选项包括:
Win
:指定Windows版本(例如"Windows 10")。缩写版本也可以使用(如-Win 10
),只要它足够独特。如果未指定此选项,将自动选择最新版本的Windows。您可以通过指定-Win List
获取支持的版本列表。Rel
:指定Windows发布版本(例如"21H1")。如果未指定此选项,将自动选择所选Windows版本的最新发布版本。您也可以使用-Rel Latest
强制使用最新版本。您可以通过指定-Rel List
获取支持的版本列表。Ed
:指定Windows版本(例如"Pro/Home")。缩写版本也可以使用(如-Ed Pro
),只要它足够独特。如果未指定此选项,将自动选择最新版本的Windows。您可以通过指定-Ed List
获取支持的版本列表。Lang
:指定Windows语言(例如"Arabic")。缩写或部分语言名称(如-Lang Int
表示"English International")只要足够独特就可以使用。如果未指定此选项,脚本将尝试选择与系统区域设置相同的语言。您可以通过指定-Lang List
获取支持的语言列表。Arch
:指定Windows架构(例如"x64")。如果未指定此选项,脚本将尝试使用与当前系统相同的架构。GetUrl
:默认情况下,脚本会尝试自动启动下载。但使用-GetUrl
开关时,脚本只会显示下载URL,然后可以将其管道传输到另一个命令或文件中。
命令行下载示例:
PS C:\Projects\Fido> .\Fido.ps1 -Win 10
未指定发布版本(-Rel)。默认为"21H1(Build 19043.985 - 2021.05)"。
未指定版本(-Ed)。默认为"Windows 10 家庭版/专业版"。
未指定语言(-Lang)。默认为"英语国际版"。
未指定架构(-Arch)。默认为"x64"。
已选择:Windows 10 21H1(Build 19043.985 - 2021.05),家庭版/专业版,英语国际版,x64
正在下载"Win10_21H1_EnglishInternational_x64.iso"(5.0 GB)...
PS C:\Projects\Fido> .\Fido.ps1 -Win 10 -Rel List
请为Windows 10选择Windows发布版本(-Rel)(或使用"Latest"表示最新版本):
- 21H1(Build 19043.985 - 2021.05)
- 20H2(Build 19042.631 - 2020.12)
- 20H2(Build 19042.508 - 2020.10)
- 20H1(Build 19041.264 - 2020.05)
- 19H2(Build 18363.418 - 2019.11)
- 19H1(Build 18362.356 - 2019.09)
- 19H1(Build 18362.30 - 2019.05)
- 1809 R2(Build 17763.107 - 2018.10)
- 1809 R1(Build 17763.1 - 2018.09)
- 1803(Build 17134.1 - 2018.04)
- 1709(Build 16299.15 - 2017.09)
- 1703 [红石2](Build 15063.0 - 2017.03)
- 1607 [红石1](Build 14393.0 - 2016.07)
- 1511 R3 [阈值2](Build 10586.164 - 2016.04)
- 1511 R2 [阈值2](Build 10586.104 - 2016.02)
- 1511 R1 [阈值2](Build 10586.0 - 2015.11)
- 1507 [阈值1](Build 10240.16384 - 2015.07)
PS C:\Projects\Fido> .\Fido.ps1 -Win 10 -Rel 20H2 -Ed Edu -Lang Fre -Arch x86 -GetUrl
https://software-download.microsoft.com/db/Win10_Edu_20H2_v2_French_x32.iso?t=c48b32d3-4cf3-46f3-a8ad-6dd9568ff4eb&e=1629113408&h=659cdd60399584c5dc1d267957924fbd
附加说明
由于其预期与Rufus一起使用,此脚本并非设计用于涵盖所有可能的零售版ISO下载。相反,我们主要选择了公众可能会请求的那些。例如,我们目前没有计划添加对LTSB/LTSC Windows ISO下载的支持。
如果您对此类下载感兴趣,那么我们诚挚地邀请您访问Microsoft的相关下载页面,例如此页面用于LTSC版本。