[Windows部署] 如何直接获取最新的Windows Insider Preview安装映像? #1 (第一节)

目录
1. 下载映像部件 (包含一些数据清洗技巧)
2. 直接生成专业版映像
3. 为什么说它们是"映像部件"?
4. 部署映像及简单体验
5. (进阶) 生成企业版、专业工作站版映像
前言
有时候我们需要不通过Windows内置的Insider更新服务,直接获取最新Insider版本的安装映像。这样做通常是为了尝鲜或者进行一些特殊任务(比如通过Windows Store下载Windows 10 X的映像文件)。但是微软没有提供这样的下载链接,也没有提供类似于Media Creation Tool的实用工具。UUPdump网站提供了官方映像组件的下载信息,还提供了转换映像、生成ISO的实用工具。利用UUPdump提供的下载信息,我们可以下载映像的部件,然后生成安装映像并部署。
第一节 下载映像部件
访问下面的UUPdump网站。不要把后面的语言请求漏掉,要不然一会还需要选择映像语言。
https://uupdump.ml/?lang=zh-cn

找到对应平台的最新Insider Preview版本,并进入下载页面。截至6月7日,Fast通道的最新版本为19640(mn_release)。//mn_release其实已经是20H2的开发代号了,最早出现在19628。

选择映像语言。由于网页已经设为中文,所以直接下一步即可。

选择映像版本。选择Pro即可,企业版、专业工作站版也包含在其中。

选择下载类型。不需要下载文件包,点击右侧的"浏览文件列表"。

进入文件列表页面后,复制这个页面的网址,但不要关闭这个页面。

打开BitComet,新建任务,粘贴刚才复制的网址,然后在网址后面增加一个请求参数:
&aria2=2
选择一个保存地址,然后开始下载。

稍等片刻即得到一个37KB的文件。它实际上不是HTML(扩展名为HTML只是因为请求页面的扩展名为HTML,这个问题一会也会遇到),而是一个Aria2下载脚本,包含了映像各个组成部分的下载地址、文件名和SHA1哈希值。但是在本例中我们不使用提供的Aria2进行下载。这个脚本可以直接作为文件列表喂给BitComet进行批量下载,但是为了保险起见,防止出现(瞎)不可预测的(担)行为(心),比如其他信息被解析为请求参数,我们还是要对这个脚本进行简单的处理。

打开编辑器(不是必须用vscode),可以看到下载地址和其他信息存储在不同的行。

用以下正则表达式选中不含http地址头的行,然后替换为空。
^[^http://].*

替换完成后保存文件。

打开BitComet,按Ctrl+B打开批量下载对话框,选择"从文件加载URL"。选择刚才修改后的Aria2脚本(现在是URL列表了)。

进入下载选择页面。部件很多,建议下载到单独的空文件夹。选择文件夹后开始下载。

稍等任务导入完成,下载就会开始。

其实UUPdump在本例中只是起到了提供下载地址和文件信息的角色,映像部件是直接从微软官网下载的。我们也没有使用UUPdump提供的各种工具。从微软官网的下载很快,我这里100M的带宽(200M的宽带,还有带宽给了其他设备)可以跑满。

下载完成之后,我们得到了一堆几百MB的HTML文件(原因刚才已经解释)。显然我们需要更正它们的文件名。

现在回到刚才没有关闭的文件列表页面,找到后面的"文件重命名脚本",复制脚本的全部内容。

打开一个空的编辑器,将内容粘贴进去。由于我们得到的文件有HTML后缀,我们需要对脚本进行一些修改。选中每行的两字符串的间隔部分,就可以向前一个字符串的最后或者后一个字符串的最前添加字符。在这里我们需要把修改前的文件名后面加上.html后缀。

替换后保存为rename.cmd,保存到存放映像部件的文件夹中。//vscode会自动通过用户输入的扩展名来判断文件类型,不需要手动选择。

回到存放映像部件的文件夹,运行脚本。在截不到图的时间内运行完毕,文件名已经修改完成。

随机选择几个大文件,计算SHA1哈希值并复制。//经常开发(是)或者处理大文件的(我)要注意,不要选成SHA256(手动滑稽)。

回到文件列表页面,按Ctrl-F,在页面上查找对应的哈希值。如果都能对上,则进入下一节。如果有对不上的就要检查网络环境并重新下载了。
