Windows 10 桌面版的 OEM 部署

已准备好构建并测试 Windows 10 台式电脑? 本实验演示制作和部署 Windows 映像的步骤。 我们将演示如何使用工具和命令设置端到端部署。 可以编写针对这些命令的脚本,帮助你针对特定市场快速自定义新映像以便满足客户需求。

我们将引导你完成生成自定义 Windows 部署的过程。 下面是要介绍的内容:

Image showing the flow of a Windows deployment. The first step in the flow is to prepare by gathering collateral, installing the ADK, and Create a WinPE drive. Then you create images by adding language packs, features on demand, apps, drivers, updates, configuring unattend and start layouts, configuring hardware settings, and setting the edition. Finally you can apply your image as an ffu or WIM.

我们从准备环境开始,然后介绍以下步骤:

  • 准备和装载 WinPE 映像
  • 添加包
  • 添加驱动程序
  • 创建 WinPE 媒体

接下来,继续自定义 Windows 映像。 我们首先对装载的 Windows 映像进行脱机自定义,在此过程中我们将介绍:

  • 添加驱动程序
  • 添加语言
  • 添加更新
  • 重新安装内置应用
  • 预安装 Microsoft Office
  • 将磁贴添加到“开始”菜单布局
  • 设置 OOBE 以显示自定义 EULA
  • 配置并使用应答文件来自定义 Windows 安装程序

我们通过将映像部署到电脑,并启动进入审核模式来完成 Windows 映像的自定义,然后完成更改,这包括:

  • 在审核模式下进行更改
  • 准备一键重置

最后,我们将最终确认并捕获映像,验证是否一切正常,并准备映像以进行部署

  • 确定映像

让我们开始吧!

准备实验室环境

注意

如果你尚未收集完成本实验所需的文件,请参阅获取 Windows 10 桌面版的 OEM 部署所需的工具

此时,应已准备好所需的工具。 现在应已获得:

一个 USB 驱动器,已格式化为两个分区,其 NTFS 分区 (O:) 包含以下内容:

  • 从 USB-B 中提取的文件夹结构和文件

一台技术人员电脑,其中包含:

  • 名为 C:\temp\lab 的文件夹,以下媒体已下载到其中:
    • Windows 安装媒体
    • 最新版本的 Microsoft Office OPK
    • Windows 按需功能 ISO
    • Windows 语言包 ISO
    • OPK 应用更新或内置应用 ISO
    • Windows ADK 安装程序
    • WinPE ADK 加载项(如果使用适用于 Windows 10 版本 1809 或更高版本的 ADK)
    • 映像的驱动程序(如果需要)

让我们设置实验。

安装适用于 Windodws 10 的 Windows ADK

Windows ADK 是可用于管理自定义 Windows 安装并将其部署到新计算机中的一系列工具。

重要

请对所要自定义的映像使用匹配的 ADK 版本。 例如,如果使用的是 Windows 10 版本 1809,请使用适用于 Windows 10 版本 1809 的 ADK。

在技术人员电脑上:

  1. 如果你有以前版本的 Windows 评估和部署工具包 (ADK),请将其卸载。

  2. 下载与你要安装的 Windows 版本匹配的 Windows ADK 版本。

  3. 结合以下选项运行 ADK 安装程序以安装 ADK。 如果使用的是适用于 Windows 10 版本 1809 的 ADK,WinPE 不会随附在 ADK 安装程序中,而是一个独立的加载项包,在安装 ADK 后必须安装该包:

  • 部署工具
  • 用户状态迁移工具 (USMT)
  • Windows 预安装环境 (Windows PE)
  1. 安装完成后,关闭安装程序窗口。

创建可启动的 Windows PE (WinPE) 分区

WinPE 是基于命令行的小型操作系统,可用于捕获、更新和优化 Windows 映像。 本部分介绍如何在可启动 USB 闪存驱动器上准备基础 WinPE 映像并试用。

准备 WinPE 文件

  1. 在技术人员电脑上,以管理员身份启动部署和映像工具环境:

    • 单击开始,键入部署和映像工具环境。 右键单击部署和映像工具环境,然后选择以管理员身份运行
  2. 使用 copype 创建一个包含基础 WinPE 文件的工作目录:

    copype amd64 C:\winpe_amd64
    

    提示

    如果这不起作用,请确保你处于部署和映像工具环境中,而不是在标准命令提示符下。

自定义 WinPE

可以通过将文件和组件添加到装载的 WinPE 映像,以多种方式自定义 WinPE 映像 (boot.wim)。

下面是有关如何修改 WinPE 映像的一些示例:

  • 添加可选组件。 WinPE 可选组件在 ADK 中提供。 可将这些包添加到 WinPE 映像,以向 WinPE 添加功能。

  • 添加显卡驱动程序或网络驱动程序。 (WinPE 包括通用视频和网络驱动程序,但在一些情况下,需要附加驱动程序来显示屏幕或连接到网络。) 要了解详细信息,请参阅 WinPE:添加驱动程序

  • 将电源方案设置为高性能。 加快部署。 请注意,我们的示例部署脚本已自动设置此方案。 请参阅 WinPE:装载和自定义:高性能

  • 优化 WinPE:建议用于具有有限内存和存储的设备(例如,1GB RAM/16GB 存储)。 在你向 Windows PE 添加驱动程序或其他自定义项后,请参阅 WinPE:优化和缩小映像以帮助缩短启动时间。

将包添加到 WinPE 时,性能将会下降,启动时间将会延长。 请仅添加成功完成部署所需的包。

装载 WinPE 映像

若要自定义某个 Windows 映像,必须先装载该映像,然后才能使用它。 对 WinPE 映像也是如此。 装载映像会将映像文件的内容提取到某个位置,可在该位置查看和修改此文件。 在整个实验中,我们将使用 DISM 来装载和修改映像。 DISM 已随附在 Windows 中,但我们将使用 ADK 安装的版本。我们将通过部署和映像工具环境访问该版本。

Boot.wim 是 WinPE 映像文件。 可以在使用 copype.cmd 复制的文件中找到它。

装载映像:

  • 在“部署和映像工具环境”中装载映像:
Dism /mount-image /imagefile:c:\WinPE_amd64\media\sources\boot.wim /index:1 /mountdir:c:\winpe_amd64\mount

将包、可选组件、依赖项和语言包添加到 WinPE(可选)

使用 Dism /Add-Package 将包添加到装载的 WinPE 映像。 ADK 包含 WinPE 可选组件,可以添加这些组件以获得更多的 WinPE 功能。 某些包具有依赖项,要求安装其他包。 对于这些包,必须在添加包之前安装依赖项。 例如,如果要在 WinPE 中使用 Powershell,则必须安装 NetFx 以及特定于语言的 OC。 可以在 C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\<arch>\WinPE_OCs\ 中找到 OC CAB。 下面演示了如何添加适用于美国英语 (en-us) 的 Powershell 支持:

Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-WMI.cab"  /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\en-us\WinPE-WMI_en-us.cab" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-NetFX.cab" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\en-us\WinPE-NetFX_en-us.cab" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-Scripting.cab" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\en-us\WinPE-Scripting_en-us.cab" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-PowerShell.cab" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\en-us\WinPE-PowerShell_en-us.cab" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-StorageWMI.cab" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\en-us\WinPE-StorageWMI_en-us.cab" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-DismCmdlets.cab" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\en-us\WinPE-DismCmdlets_en-us.cab"

注意

仅在需要时添加附加包。 添加的包越多,对启动时间和性能的影响就越大。

将驱动程序添加到 WinPE(如果需要)

如果需要将驱动程序添加到 WinPE,请使用 Dism /Add-Driver。 仅当 WinPE 尚不包含硬件的驱动程序时,才需要执行此操作。

下面演示了如何将驱动程序添加到 WinPE:

注意

此方法需要基于 .inf 的驱动程序。 从硬件供应商处获取基于 .inf 的驱动程序。

dism /image:C:\winpe_amd64\mount /Add-Driver /driver:"C:\Out-of-Box Drivers\mydriver.inf"

其中 C:\Out-of-Box Drivers\mydriver.inf 是要添加的驱动程序的路径。

若要安装文件夹及其所有子文件夹中的所有驱动程序,请使用 /recurse 选项。 例如:

Dism /Image:C:\Winpe_amd64\mount /Add-Driver /Driver:c:\drivers /recurse

其中 C:\drivers 是要添加的驱动程序文件夹。

将电源方案设置为高性能

将 WinPE 设置为使用高性能模式可以加快部署速度。 示例脚本在运行时会将 WinPE 设置为高性能模式,但如果你想要确保 WinPE 始终以高性能模式运行,可以修改 WinPE 映像中的 startnet.cmd

  1. 使用记事本打开 C:\Winpe_amd64\mount\windows\system32\startnet.cmd

    notepad C:\Winpe_amd64\mount\windows\system32\startnet.cmd
    
  2. 将以下行添加到 startnet.cmd:

    powercfg /s 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c
    
  3. 保存文件并关闭记事本。

清理 WinPE 映像

运行 dism /cleanup-image 以减少 WinPE 的磁盘和内存占用量,并提高与各种设备的兼容性:

DISM /image:c:\winpe_amd64\mount /Cleanup-image /StartComponentCleanup

有关更多详细信息,请参阅 WinPE:优化和缩小映像

提交更改并卸载映像

如果在 WinPE 映像中添加了多余的文件,可将其删除以减小映像大小并提高性能。 处理完映像后,可以提交更改并卸载映像。 然后将自定义的 WinPE 映像导出到 WinPE 文件夹中:

dism /unmount-image /mountdir:c:\winpe_amd64\mount /commit
dism /export-image /sourceimagefile:c:\winpe_amd64\media\sources\boot.wim /sourceindex:1 /DestinationImageFile:c:\winpe_amd64\mount\boot2.wim
Del c:\winpe_amd64\media\sources\boot.wim
Copy c:\winpe_amd64\mount\boot2.wim c:\winpe_amd64\media\sources\boot.wim

创建可启动的 WinPE 驱动器

更新 WinPE 映像以包含所需的全部内容后,接下来可以制作可启动的 WinPE 驱动器。 在部署和映像工具环境中:

  1. 将 USB 启动盘连接到技术人员电脑。

  2. 将 WinPE 复制到 WinPE 分区:

    MakeWinPEMedia /UFD C:\winpe_amd64 P:
    

    其中,P: 是 WinPE 驱动器号。

    出现提示后,按“Y” 以格式化该驱动器并安装 WinPE。

将参考电脑启动进入 WinPE

  1. 将 USB 驱动器连接到参考设备。

  2. 关闭参考设备,然后启动进入 USB 驱动器。 通常可通过启动设备并快速按下某个键(例如 Esc 键或 Volume up 键)来执行此操作。

    注意

    在某些设备上,可能需要进入启动菜单以选择 USB 驱动器。 如果可选择以 UEFI 模式还是 BIOS 模式启动,请选择 UEFI 模式。 若要了解详细信息,请参阅 启动到 UEFI 模式或传统 BIOS 模式。 如果设备未从 USB 驱动器中启动,请参阅 WinPE:创建 USB 可引导驱动器中的疑难解答提示。

    WinPE 从命令行启动,然后运行 wpeinit 来设置系统。 这会需要几分钟时间。

现在将此电脑启动到 Windows PE。 可以删除可启动的 USB 驱动器。

自定义 Windows 映像

为部署自定义 WinPE 映像后,接下来我们将了解如何让 Windows 映像为部署做好准备。 该过程类似于更改 WinPE 映像,但 Windows 还提供了其他许多自定义选项。

可对 Windows 映像进行脱机或联机自定义。 在启动进入 WinPE 后,从技术人员电脑或目标电脑对 Windows 映像 (install.wim) 进行脱机自定义。 在大多数情况下,脱机自定义是指从技术人员电脑执行的自定义。 在参考电脑启动进入审核模式后,可在其上进行联机自定义。

下表显示了可以在联机和脱机状态下进行的自定义。 在制造环境中,建议尽量在脱机状态下进行自定义。

方案 Offline 联机
添加设备驱动程序 X X
添加 Microsoft Store 应用 X X
添加桌面 (win32) 应用 - X
添加语言包 X X
删除默认语言包 X -
添加按需功能 X X
添加最新累积更新 X X
映像优化 X X
Microsoft Store 应用重复文件清理 X -
Microsoft Office X X

准备和装载 Windows 映像

mount and customize process that shows that you mount an image into a folder, modify the mounted image by adding drivers, languages, packages, etc. Then you use DISM to save your changes to the image and unmount it.

本部分介绍如何在技术人员电脑上装载 Windows 映像。 装载 Windows 映像的过程与我们前面用于装载 WinPE 映像的过程相同。 装载 Windows 映像 (install.wim) 时,我们可以访问另一个映像 WinRe.wim,它是支持恢复方案的映像。 同时更新 install.wim 和 WinRE.wim 有助于保持两个映像同步,从而确保恢复按预期进行。

在继续之前,请确保已创建 USB-B 驱动器。 获取所需的工具部分已介绍如何设置该驱动器。

备份 Windows 映像文件

在处理 Windows 映像之前,需确保有一个备份副本,以防出现问题。 创建原始映像的副本:

首先将 install.wim 从 Windows 安装媒体复制到 USB-B。 Install.wim 包括家庭版和专业版映像。 我们将从 install.wim 中导出家庭版映像,然后在本次实验期间使用该映像。

  1. USB-B 插入到技术人员计算机。

  2. 从 Win Home 10 32-BIT/X64 English OPK 装载 Windows 10 家庭版 .img 映像。

  3. 从装载的映像中,将 D:\sources\install.wim 复制到 C:\temp\lab\images。 (其中 D: 是装载的映像的驱动器号。)

  4. 从“开始”菜单打开“Windows 工具包”,然后以管理员身份打开“部署和映像工具环境”。

  5. 创建映像的副本以防出现问题。

    copy "C:\temp\lab\Images\install.wim" C:\temp\lab\Images\install-backup.wim
    
  6. 将 install.wim 中的家庭版(索引 2)导出为 basicimage.wim,并删除原始的 C:\temp\lab\images\install.wim:

    Dism /export-image /sourceimagefile:C:\temp\lab\images\install.wim /sourceindex:2 /destinationimagefile:C:\temp\lab\images\basicimage.wim
    Del C:\temp\lab\images\install.wim
    

    导出映像后,可以装载它。

装载 Windows 映像

创建装载目录并装载 basicimage.wim:

Md C:\mount\windows
Dism /Mount-Wim /WimFile:C:\temp\lab\images\basicimage.wim /index:1 /MountDir:C:\mount\windows

(其中 E:\ 是 USB-B 的驱动器号)

装载 WinRE 映像

如果系统无法成功启动进入 Windows,它将故障转移到 Windows 恢复环境 (WinRE)。 WinRE 可修复无法启动操作系统的常见问题。 WinRE 基于 WinPE,为了使其适合客户使用,你可以添加驱动程序、语言、Windows PE 可选组件,以及其他故障排除和诊断工具。

WinRE 映像包含在 Windows 10 映像中,最终将复制到目标电脑或设备上的 Windows RE 工具分区。 若要修改 WinRE 映像,需要装载 Windows 映像,然后在其中装载 WinRE 映像。 进行更改,卸载该 WinRE 映像,然后卸载该 Windows 映像。

Image showing that you can mount and windows image, and then mount an image from the mounted image's mount folder so you can configure two nested images.

如果将以下任何内容添加到映像,则还应该使用相同的更改来更新恢复映像:

  • 添加对启动非常关键的 .inf 格式驱动程序,例如显卡和存储驱动程序。
  • 添加 Windows 的主要更新,例如 LCU。
  • 添加新语言。不过,该操作并非始终可行,因为并非所有语言都具有 Windows RE 等效项。

注意

本实验假设你要在 install.wim 内部保留 winre.wim 以同步语言和驱动程序。如果你想在工厂车间节省一点时间,并且不反对单独管理这些映像,可以从映像中删除 winre.wim 并单独应用它。

  • 从已装载的映像装载 Windows RE 映像文件。

    Md c:\mount\winre
    Dism /Mount-Wim /WimFile:C:\mount\windows\Windows\System32\Recovery\winre.wim /index:1 /MountDir:C:\mount\winre
    

    提示

    如果在指定目录下看不到 winre.wim,请使用以下命令将该文件设置为可见:

    attrib -h -a -s C:\mount\windows\Windows\System32\Recovery\winre.wim
    

    故障排除:如果装载操作失败,请确保使用的是部署和映像工具环境中的 DISM。 不要将映像装载到受保护的文件夹,例如 User\Documents 文件夹。 如果 DISM 进程中断,请考虑暂时断开网络连接并禁用病毒防护。

脱机自定义

装载映像后,可以开始自定义。 我们将介绍如何对 Windows 映像进行脱机自定义。 脱机自定义是在无需启动进入 Windows 安装的情况下可对已装载的映像进行的更改。 首先,我们逐步介绍如何从 Windows 映像添加(和删除)语言。

关于语言

本部分介绍如何将语言添加到 Windows 安装。 若要添加语言,需要使用语言包 ISO 中的语言包,并可以连接到 Internet 或能够访问按需功能 ISO。

注意

  • 在应用主要更新之前添加语言。 主要更新包括修补程序、常规分发版本或 Service Pack。 如果你在以后添加语言,将需要重新安装这些更新。
  • 在应用前添加主要更新。 这些应用包括通用 Windows 应用和桌面应用程序。 如果在以后添加更新,则需要重新安装应用。 我们将稍后在实验 6:添加通用 Windows 应用中向你介绍如何添加它们。
  • 也向你的恢复映像添加你的语言:许多常用语言可以添加到你的恢复映像。 我们稍后将在实验 12:更新恢复映像中向你介绍如何添加它们。

始终使用匹配 Windows 映像的语言和平台的语言包和 Features-On-Demand (FOD) 程序包。

按需功能 (FOD) 是随时可以添加的 Windows 功能包。 当用户需要一项新功能时,他们可以从 Windows 更新请求该功能包。 OEM 可以预安装这些功能,使得开箱即可在其设备上使用它们。

常见功能包括如手写识别等语言资源。 若要启用完整 Cortana 功能,需要其中一些功能。

下表显示适用于 Windows 10 的语言包和组件的类型:

组件 示例文件名 依赖项 说明
语言包 Microsoft-Windows-Client-Language-Pack_x64_de-de.cab UI 文本,包括基本 Cortana 功能。
语言界面包 LanguageExperiencePack.am-et.neutral.appx 需要特定的完全本地化或部分本地化的语言包。 示例:ca-ES 需要 es-ES。 UI 文本,包括基本 Cortana 功能。 若要了解详细信息,请参阅适用于 Windows 的语言包。
基本 Microsoft-Windows-LanguageFeatures-Basic-de-de-Package 拼写检查、文本预测、断词和断字(如果适用于该语言)。 你必须在添加以下任何组件之前添加此组件。
字体 Microsoft-Windows-LanguageFeatures-Fonts-Thai-Package 某些区域所需的字体。 例如,th-TH 需要泰语字体包。
光学字符识别 Microsoft-Windows-LanguageFeatures-OCR-de-de-Package 基本 识别和输出映像中的文本。
手写内容识别 Microsoft-Windows-LanguageFeatures-Handwriting-de-de-Package 基本 启用带有笔输入的设备的手写识别。
文本转语音 Microsoft-Windows-LanguageFeatures-TextToSpeech-de-de-Package 基本 启用文本到语音转换(由 Cortana 和“讲述人”使用)。
语音识别 Microsoft-Windows-LanguageFeatures-Speech-de-de-Package 基本,文本到语音识别 识别由“小娜”和 Windows 语音识别使用的语音输入
零售演示体验 Microsoft-Windows-RetailDemo-OfflineContent-Content-de-de-Package 基本 (Basic) 包,加上与语言无关的零售演示包:Microsoft-Windows-RetailDemo-OfflineContent-Content-Package 零售演示体验

添加或更改语言

在本部分,我们将语言和按需功能添加到 Windows 映像。 我们将添加德语 (de-de) 语言包,然后添加日语 (ja-jp) 语言。 日语是需要附加字体支持的语言示例。

重要

如果在安装语言包之前安装的某个更新包含与语言相关的资源,则添加语言包时不会应用更新中特定于语言的更改。 需要重新安装该更新以应用特定于语言的更改。 若要避免重新安装更新,请在安装更新前安装语言包。

语言更新具有安装时需遵循的特定顺序。 例如,若要启用“小娜”,请依次安装:Microsoft-Windows-Client-Language-Pack、–Basic、–Fonts、–TextToSpeech、–Speech。 如果你不确定这些依赖关系,可将它们放置在同一文件夹中,然后使用 DISM /Add-Package 将它们全部添加。

确保使用的语言包和按需功能与所用映像的体系结构相匹配。 下面是构建 64 位系统的示例。

复制语言文件

装载语言包 ISO,并复制要添加到 C:\temp\lab\LanguagePacks 的语言的语言包 .cab 文件。 以下示例将使用德语和日语语言。

装载按需功能 ISO,并复制要添加到 C:\temp\lab\LanguagePacks 的语言的 LanguageFeatures .cab 文件。 以下示例将使用德语和日语语言。

  1. 添加德语语言包和按需功能语言包。

    使用 64 位 ISO 中的语言包和按需功能:

    Dism /Add-Package /Image:C:\mount\windows /PackagePath:C:\Temp\Lab\LanguagePacks\Microsoft-Windows-Client-Language-Pack_x64_de-de.cab /PackagePath:C:\Temp\Lab\LanguagePacks\Microsoft-Windows-LanguageFeatures-Basic-de-de-Package~31bf3856ad364e35~amd64~~.cab /PackagePath:C:\Temp\Lab\LanguagePacks\Microsoft-Windows-LanguageFeatures-OCR-de-de-Package~31bf3856ad364e35~amd64~~.cab /PackagePath:C:\Temp\Lab\LanguagePacks\Microsoft-Windows-LanguageFeatures-Handwriting-de-de-Package~31bf3856ad364e35~amd64~~.cab /PackagePath:C:\Temp\Lab\LanguagePacks\Microsoft-Windows-LanguageFeatures-TextToSpeech-de-de-Package~31bf3856ad364e35~amd64~~.cab /PackagePath:C:\Temp\Lab\LanguagePacks\Microsoft-Windows-LanguageFeatures-Speech-de-de-Package~31bf3856ad364e35~amd64~~.cab /packagepath:C:\Temp\Lab\LanguagePacks\Microsoft-Windows-RetailDemo-OfflineContent-Content-de-de-Package~31bf3856ad364e35~amd64~~.cab
    
  2. (可选)添加日语语言包和按需功能。

    在 Windows 10 中,某些特定于语言的字体已划分到不同的语言 .cab 文件中。 在本部分,我们将添加 ja-JP 语言以及对日语字体的支持。

    使用 64 位 ISO 中的语言包和按需功能:

    Dism /Add-Package /Image:C:\mount\windows /PackagePath:C:\Temp\Lab\LanguagePacks\Microsoft-Windows-Client-Language-Pack_x64_ja-jp.cab /PackagePath:C:\Temp\Lab\LanguagePacks\Microsoft-Windows-LanguageFeatures-Basic-ja-jp-Package~31bf3856ad364e35~amd64~~.cab /PackagePath:C:\Temp\Lab\LanguagePacks\Microsoft-Windows-LanguageFeatures-OCR-ja-jp-Package~31bf3856ad364e35~amd64~~.cab /PackagePath:C:\Temp\Lab\LanguagePacks\Microsoft-Windows-LanguageFeatures-Handwriting-ja-jp-Package~31bf3856ad364e35~amd64~~.cab /PackagePath:C:\Temp\Lab\LanguagePacks\Microsoft-Windows-LanguageFeatures-TextToSpeech-ja-jp-Package~31bf3856ad364e35~amd64~~.cab /PackagePath:C:\Temp\Lab\LanguagePacks\Microsoft-Windows-LanguageFeatures-Speech-ja-jp-Package~31bf3856ad364e35~amd64~~.cab /PackagePath:C:\Temp\Lab\LanguagePacks\Microsoft-Windows-LanguageFeatures-Fonts-Jpan-Package~31bf3856ad364e35~amd64~~.cab /packagepath:C:\Temp\Lab\LanguagePacks\Microsoft-Windows-RetailDemo-OfflineContent-Content-ja-jp-Package~31bf3856ad364e35~amd64~~.cab
    
  3. 验证语言包现在是否是已装载映像的一部分:

    dism /get-packages /image:"C:\mount\windows"
    

    确保添加的语言出现在列表中。

    Package Identity : Microsoft-Windows-Client-LanguagePack  ...  de-DE~10.0.17134.1
    State : Installed
    
  4. 验证按需功能是否在映像中:

    dism /get-capabilities /image:"C:\mount\windows"
    

    确保语言 FOD 出现在列表中:

    Capability Identity : Language.Basic~~~de-de~0.0.1.0
    State : Installed
    ...
    Capability Identity : Language.Handwriting~~~de-de~0.0.1.0
    State : Installed
    

配置语言设置

本部分介绍如何更改已装载的 Windows 映像的默认语言和时区。

  1. 使用 DISM 设置映像的默认语言。 我们将默认语言设置为德语,因为在前面的步骤中我们已将该语言添加到映像中:

    Dism /Image:C:\mount\windows /Set-AllIntl:de-DE
    
  2. 验证所做的更改

    Dism /Image:C:\mount\windows /Get-Intl
    

设置默认时区

可以使用 DISM 设置电脑的默认时区。 在此处,我们将设置时区。 有关可用时区的列表,请参阅默认时区

Dism /Set-TimeZone:"W. Europe Standard Time" /Image:"C:\mount\windows"

从映像中删除基础语言

本部分介绍如何从 Windows 映像中删除语言。 这是可选步骤。

将映像设置为使用德语作为默认语言后,我们可以从映像中删除英语语言功能,使其成为非英语映像。 若要从映像中彻底删除 en-US,必须删除几个组件。

警告

如果交付的是英语版电脑,请不要删除英语基础语言。

从 64 位映像中删除语言组件:

dism /image:"c:\mount\windows" /remove-package /packagename:Microsoft-Windows-Client-LanguagePack-Package~31bf3856ad364e35~amd64~en-US~10.0.17134.1 /packagename:Microsoft-Windows-LanguageFeatures-Basic-en-us-Package~31bf3856ad364e35~amd64~~10.0.17134.1 /packagename:Microsoft-Windows-LanguageFeatures-Handwriting-en-us-Package~31bf3856ad364e35~amd64~~10.0.17134.1 /packagename:Microsoft-Windows-LanguageFeatures-OCR-en-us-Package~31bf3856ad364e35~amd64~~10.0.17134.1 /packagename:Microsoft-Windows-LanguageFeatures-Speech-en-us-Package~31bf3856ad364e35~amd64~~10.0.17134.1 /packagename:Microsoft-Windows-LanguageFeatures-TextToSpeech-en-us-Package~31bf3856ad364e35~amd64~~10.0.17134.1 /packagename:Microsoft-Windows-RetailDemo-OfflineContent-Content-en-us-Package~31bf3856ad364e35~amd64~~10.0.17134.1

提示

故障排除:如果在运行这些命令时出错,请对失败的包再次尝试这些命令。 示例:

Error: 0x800f0825
Package Microsoft-Windows-LanguageFeatures-Basic-en-us-Package may have failed due to pending updates to servicing components in the image.

如果命令完成但出错,请检查 DISM 日志文件: C:\windows\Logs\DISM\dism.log。

将语言添加到 Windows RE

下面介绍如何将语言添加到 WinRE。 将语言添加到 WinRE 可确保客户所需的语言在恢复方案中可用。 如果已将语言添加到 Windows 映像,请执行这些步骤。

WinRE 与 WinPE 使用相同的语言包。 可以在语言包 ISO 中找到这些语言包,还可以在路径为 C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\<lang> 的 ADK 安装文件夹中找到特定于语言的 WinPE OC

若要完成本部分,请将语言包 ISO 中的语言包以及 C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs 中的 WinPE OC 复制到 C:\Temp\Lab\LanguagePacks\RE\<language>

  1. 添加德语语言包

    使用 64 位版本的语言包和 WinPE 可选组件:

    Dism /image:C:\mount\winre /add-package /packagepath:"C:\temp\lab\LanguagePacks\RE\de-de\lp.cab"
    Dism /image:C:\mount\winre /add-package /packagepath:"C:\Temp\Lab\LanguagePacks\RE\de-deWinPE-Rejuv_de-de.cab"
    Dism /image:C:\mount\winre /add-package /packagepath:"C:\temp\lab\LanguagePacks\RE\\de-de\WinPE-EnhancedStorage_de-de.cab"
    Dism /image:C:\mount\winre /add-package /packagepath:"C:\temp\lab\LanguagePacks\RE\de-de\WinPE-Scripting_de-de.cab"
    Dism /image:C:\mount\winre /add-package /packagepath:"C:\temp\lab\LanguagePacks\RE\de-de\WinPE-SecureStartup_de-de.cab"
    Dism /image:C:\mount\winre /add-package /packagepath:"C:\temp\lab\LanguagePacks\RE\de-de\WinPE-SRT_de-de.cab"
    Dism /image:C:\mount\winre /add-package /packagepath:"C:\temp\lab\LanguagePacks\RE\de-de\WinPE-WDS-Tools_de-de.cab"
    Dism /image:C:\mount\winre /add-package /packagepath:"C:\temp\lab\LanguagePacks\RE\de-de\WinPE-WMI_de-de.cab"
    Dism /image:C:\mount\winre /add-package /packagepath:"C:\temp\lab\LanguagePacks\RE\de-de\WinPE-StorageWMI_de-de.cab"
    Dism /image:C:\mount\winre /add-package /packagepath:"C:\temp\lab\LanguagePacks\RE\de-de\WinPE-HTA_de-de.cab"
    
  2. (可选)将日语语言包和字体支持添加到 WinRE。 请注意,对于日语,我们将添加一个用于字体支持的附加 cab。

    使用 64 位 ISO 中的语言包和 WinPE 可选组件:

    Dism /image:C:\mount\winre /add-package /packagepath:"C:\temp\lab\LanguagePacks\RE\ja-jp\lp.cab"
    Dism /image:C:\mount\winre /add-package /packagepath:"C:\temp\lab\LanguagePacks\RE\ja-jp\WinPE-Rejuv_ja-jp.cab"
    Dism /image:C:\mount\winre /add-package /packagepath:"C:\temp\lab\LanguagePacks\RE\ja-jp\WinPE-EnhancedStorage_ja-jp.cab"
    Dism /image:C:\mount\winre /add-package /packagepath:"C:\temp\lab\LanguagePacks\RE\ja-jp\WinPE-Scripting_ja-jp.cab"
    Dism /image:C:\mount\winre /add-package /packagepath:"C:\temp\lab\LanguagePacks\RE\ja-jp\WinPE-SecureStartup_ja-jp.cab"
    Dism /image:C:\mount\winre /add-package /packagepath:"C:\temp\lab\LanguagePacks\RE\ja-jp\WinPE-SRT_ja-jp.cab"
    Dism /image:C:\mount\winre /add-package /packagepath:"C:\temp\lab\LanguagePacks\RE\ja-jp\WinPE-WDS-Tools_ja-jp.cab"
    Dism /image:C:\mount\winre /add-package /packagepath:"C:\temp\lab\LanguagePacks\RE\ja-jp\WinPE-WMI_ja-jp.cab"
    Dism /image:C:\mount\winre /add-package /packagepath:"C:\temp\lab\LanguagePacks\RE\ja-jp\WinPE-StorageWMI_ja-jp.cab"
    Dism /image:C:\mount\winre /add-package /packagepath:"C:\temp\lab\LanguagePacks\RE\ja-jp\WinPE-HTA_ja-jp.cab"
    Dism /image:C:\mount\winre /add-package /packagepath:"C:\temp\lab\LanguagePacks\RE\ja-jp\WinPE-FontSupport-JA-JP.cab"
    
  3. 设置 WinRE 的默认语言,以便与默认的 Windows 语言匹配。

    Dism /Image:C:\mount\winre /Set-AllIntl:de-DE
    

从 WinRE 中删除基础语言(可选)

类似于删除 install.wim 中的基础语言类似,我们也可以从 WinRE 中删除基础语言。

从 64 位映像中删除语言组件:

Dism /image:"c:\mount\winre" /remove-package /packagename:Microsoft-Windows-WinPE-LanguagePack-Package~31bf3856ad364e35~amd64~en-US~10.0.17134.1 /packagename:WinPE-EnhancedStorage-Package~31bf3856ad364e35~amd64~en-US~10.0.17134.1 /packagename:WinPE-HTA-Package~31bf3856ad364e35~amd64~en-US~10.0.17134.1 /packagename:WinPE-Rejuv-Package~31bf3856ad364e35~amd64~en-US~10.0.17134.1 /packagename:WinPE-Scripting-Package~31bf3856ad364e35~amd64~en-US~10.0.17134.1 /packagename:WinPE-SecureStartup-Package~31bf3856ad364e35~amd64~en-US~10.0.17134.1 /packagename:WinPE-SRT-Package~31bf3856ad364e35~amd64~en-US~10.0.17134.1 /packagename:WinPE-StorageWMI-Package~31bf3856ad364e35~amd64~en-US~10.0.17134.1 /packagename:WinPE-WDS-Tools-Package~31bf3856ad364e35~amd64~en-US~10.0.17134.1 /packagename:WinPE-WMI-Package~31bf3856ad364e35~amd64~en-US~10.0.17134.1

驱动程序

可以添加驱动程序,以确保 Windows 可以成功完成首次启动。 确保将驱动程序添加到正确的映像:

  • DCHU 驱动程序:许多驱动程序包含一个信息文件(扩展名为 .inf)用于帮助安装驱动程序。 可以使用本部分所述的工具安装这些驱动程序。
  • 对启动非常关键的驱动程序:有时可能需要将显卡和存储驱动程序添加到 Windows 映像(如本实验中所述)、Windows PE 映像和 WindowsRE 映像中。

下面介绍如何以多种方式添加驱动程序。 如果你的硬件不需要任何额外的驱动程序,则无需添加任何驱动程序。

提示

如果使用相同的硬件配置创建多个设备,可以通过在捕获 Windows 映像时维护驱动程序配置来缩短安装时间和首次启动时间。

将驱动程序添加到 Windows 映像

  1. 添加包含 .inf 文件的单个驱动程序。 在此示例中,我们将使用名为 media1.inf 的驱动程序:

    Dism /Add-Driver /Image:"C:\mount\windows" /Driver:"C:\Drivers\PnP.Media.V1\media1.inf"
    

    其中“C:\Drivers\PnP.Media.V1\media1.inf”是驱动程序包中的基础 .inf 文件。

  2. 若要添加整个驱动程序文件夹,可以使用 /Recurse 选项。 这会添加该文件夹及其所有子文件夹中的所有 .inf 驱动程序。

    警告

    尽管 /Recurse 很方便,但很容易使映像膨胀。 一些驱动程序包包含多个 .inf 驱动程序包,通常它们从同一文件夹共享负载文件。 在安装期间,每个 .inf 驱动程序包将展开到一个单独的文件夹,而每个文件夹中都有负载文件的副本。 我们已看到这样的情况:使用 /Recurse 选项添加时,900MB 文件夹中的常见驱动程序导致映像大小增加了 10GB。

    Dism /Add-Driver /Image:"C:\mount\windows" /Driver:c:\drivers /Recurse
    
  3. 验证驱动程序是否为映像的一部分:

    Dism /Get-Drivers /Image:"C:\mount\windows"
    

    检查包列表,验证其中是否包含已添加的驱动程序。

将驱动程序添加到 WinRE 映像

如果已将驱动程序添加到 Windows 映像,则还应该将其添加到 WinRE 映像。 将驱动程序添加到恢复映像可确保这些驱动程序在恢复方案中可用。 将驱动程序添加到 WinRE 映像与将驱动程序添加到普通 Windows 映像的过程相同。

Dism /Add-Driver /Image:"C:\mount\winre" /Driver:"C:\Drivers\PnP.Media.V1\media1.inf" /LogPath=C:\mount\dism.log

注意

可以使用 /recurse 选项添加整个驱动程序文件夹

更新

装载映像后,可以添加 Windows 更新。 该过程类似于前面用于添加驱动程序的过程。

提醒:

  • 在应用主要更新之前添加语言。 主要更新包括修补程序、常规分发版本或 Service Pack。 如果你在以后添加语言,将需要重新添加这些更新。
  • 在应用前添加主要更新。 这些应用包括通用 Windows 应用和桌面应用程序。 如果你在以后添加更新,将需要重新添加这些应用。
  • 对于主要更新,还更新恢复映像:它们可以包括修补程序、常规分发版本、Service Pack 或其他预发布更新。 我们将稍后在实验 12:更新恢复映像中向你介绍如何更新它们。
  • 如果需要服务堆栈更新 (SSU),必须在应用最新或任何将来的常规发行版 (GDR) 之前应用 SSU。

将 Windows 更新添加到映像

使用 DISM 应用最新的服务堆栈更新 (SSU) 和常规发行版 (GDR) 以及任何必备的 KB 更新。 可在以下位置找到 KB 更新:

GDR:https://aka.ms/win10releaseinfo

SSU:https://msdn.microsoft.com/windows/hardware/commercialize/manufacture/whats-new-in-windows-manufacturing

KB 文件:https://catalog.update.microsoft.com

重要

如果在安装语言包之前安装的更新(修补程序、常规发行版 [GDR] 或服务包 [SP])包含与语言相关的资源,则添加语言包时不会应用更新中特定于语言的更改。 需要重新安装该更新以应用特定于语言的更改。 若要避免重新安装更新,请在安装更新前安装语言包。

  1. 获取 Windows 更新包。 例如,从 Microsoft 更新目录获取在 Windows 10 更新历史记录中列出的最新累积更新。 将 .msu 文件更新提取到某个文件夹,例如 E:\updates\windows10.0-kb4016240-x64_0e60aebeb151d4b3598e4cfa9b4ccb1fc80e6e4d.msu。 确保该更新与所用映像的体系结构匹配。

    若要了解详细信息,请参阅 https://myoem.microsoft.com/oem/myoem/product/winemb/pages/comm-ms-updt-ctlg-trnstn.aspx.

  2. 使用 dism /add-package 将 msu 添加到已装载的映像。

    Dism /Add-Package /Image:C:\mount\windows /PackagePath:"E:\updates\windows10.0-kb4000001-x64.msu"
    

    还可以在同一命令中添加多个更新:

    Dism /Add-Package /Image:C:\mount\windows /PackagePath:"E:\updates\windows10.0-kb4000001-x64.msu" /PackagePath:"E:\updates\windows10.0-kb0000002-x64.msu"
    

    注意

    每个包通常是一个新的 KB,它会递增 Windows 的修订版本号。 可在以下注册表项中找到 Windows 的修订版本号:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\UBR

  3. 锁定更新以确保它在恢复期间可还原。

    DISM /Cleanup-Image /Image=C:\mount\windows /StartComponentCleanup /ScratchDir:C:\Temp
    
  4. 验证更新是否包含在映像中。

    Dism /Image:C:\mount\windows /Get-Packages
    

    查看程序包结果列表,验证该列表是否包含该程序包。 例如:

    Package Identity : Package_for_RollupFix~31bf3856ad364e35~amd64~~15063.250.1.1
    State : Installed
    Release Type : Security Update
    Install Time : 04/29/2017 6:26 PM
    The operation completed successfully.
    

将更新包添加到 WinRE

本部分介绍如何将更新添加到 WinRE 映像。

重要

除了 Windows 映像之外,还必须对 WinRE 映像应用累积更新。 由于更新是累积性的,在安装新的更新后可以删除旧的更新。 稍后我们在本实验中进行的 WinRE 优化将删除不必要的更新,这可以防止 WinRE 映像不断增大。

若要将上一部分中下载的更新应用于 WinRE 映像,必须运行 dism /add-package 以将更新应用于装载的 WinRE 映像。

Dism /Add-Package /Image:C:\mount\winre /PackagePath:"E:\updates\windows10.0-kb4000001-x64.msu"

功能和应用

按需功能

将按需功能 (FOD) 添加到 Windows 映像。 按需功能是可以选择预装的功能。 可在此处查看可用 FOD 列表和预装建议。

下面介绍如何预装 .Net Framework 按需功能。

注意:虽然可以使用 /add-package 命令添加 FOD,但我们建议使用带 /Add-Capability 选项的 DISM。

  1. 装载按需功能 ISO

  2. 在技术人员电脑上,使用 DISM 获取映像中的可用 FOD 列表:

    dism /image:C:\mount\windows /get-capabilities
    

    这会显示可用功能的列表。

  3. 添加 .NET Framework。

    dism /image:C:\mount\windows /add-capability /capabilityname:NetFX3~~~~ /Source:E:
    

    其中 E: 是装载的 FOD ISO。

.NET Framework 现已添加到映像。

“应用”

本部分介绍如何处理应用,包括更新后如何重新安装内置应用、如何添加 Microsoft Store 应用,以及如何添加 Microsoft Office。

本部分继续使用装载的 Windows 映像。 如果尚未装载该映像,请装载。

提醒:请仅在依次安装语言和更新后才安装应用。

重新安装内置应用

将语言和更新添加到映像后,必须重新安装 Windows 随附的应用。 这可以确保应用能够正常运行并包含已添加到映像中的语言。 若要重新安装这些应用,需要使用应用更新 OPK 或内置应用 ISO。

  1. 将内置应用 ISO 提取到 C:\temp\lab\apps\inbox\amd64
  2. 运行 E:\apps\ReinstallInboxApps-x64.bat 脚本。

应用现已准备好使用你的映像。

添加 Microsoft Store 应用

若要完成本部分,需要使用应用更新 OPK 或内置应用 ISO。 无论你使用其中的哪一个,我们在以下步骤中都将其称为“应用更新 OPK”。

  1. 使用 DISM 添加在步骤 1 中提取的文件中的 HEVC 编解码器 .appx:

  2. 安装 HEVC .appx:

    DISM /Add-ProvisionedAppxPackage /Image:c:\mount\windows /PackagePath:"C:\temp\lab\apps\amd64\Microsoft.HEVCVideoExtension_8wekyb3d8bbwe.x64.appx" /licensepath:"C:\temp\lab\apps\inbox\amd64\Microsoft.HEVCVideoExtension_8wekyb3d8bbwe.x64.xml" /DependencyPackagePath:"C:\temp\lab\apps\inbox\amd64\Microsoft.VCLibs.x64.14.00.appx" /DependencyPackagePath:"C:\temp\lab\apps\inbox\amd64\Microsoft.VCLibs.x86.14.00.appx"
    

    注意

    请同时包含 x86 和 x64 版本的依赖包。

  3. 使用 DISM /Add-ProvisionedAppxPackage 将任何其他应用添加到映像。

  4. 验证是否已安装应用:

    Dism /Image:"C:\mount\windows" /Get-ProvisionedAppxPackages
    

安装不会固定到“开始”菜单的 Microsoft Store 应用

若要完成本部分,至少需要准备好两个要添加到映像的应用。 如果没有任何已签名的应用,可以跳到下一部分。

Windows 10 版本 1803 中的新增功能:现在可以安装不固定到“开始”菜单的 Microsoft Store 应用。 若要安装某个应用但不固定它,请在安装该应用时结合 /region 开关使用 DISM /Add-ProvisionedAppxPackage。 稍后在本实验中创建自定义的“开始”菜单时,可以从“开始”菜单中排除已安装的应用。

  1. 收集应用进行安装

  2. 安装应用,并使用 /region 选项为每个应用指定区域。 可以指定多个区域,使用 ; 分隔各个区域即可。 本实验稍后会介绍如何在 LayoutModification.xml 中使用 /region

    Dism /Add-ProvisionedAppxPackage /PackagePath:app1.appxbundle /region="all"
    Dism /Add-ProvisionedAppxPackage /PackagePath:app2.appxbundle /region="US"
    

    注意:如果应用具有依赖项,请使用 /DependencyPackagePath 将依赖项包含在命令中。 与上一部分中的示例类似,应用通常依赖于 .NET.CoreRuntime 和 .VCLibs,但如果应用不共享这些依赖项,请不要将这些依赖项包含在命令中。

优化已安装的应用

Windows 10 版本 1803 中的新增功能:在安装应用后,可以通过运行 DISM /Optimize-ProvisionedAppxPackages 来减少应用的磁盘使用量。 只能针对脱机映像运行此命令:

DISM.exe /Image:"C:\mount\windows" /Optimize-ProvisionedAppxPackages

预装 Microsoft Office

Office 应用是作为一起安装和维护的一组应用交付的。 Office 的主包是一组共享代码,每个 Office 应用(例如 Word、Excel 和 PowerPoint)将作为可选的包安装。 这些包是以支持所有 Store 应用语言的 appxbundle 文件形式交付的。

应用 包 ID 文件
共享代码和所需应用(用户不可见) Microsoft.Office.Desktop_8wekyb3d8bbwe shared.appxbundle、shared_License1.xml
Access Microsoft.Office.Desktop.Access_8wekyb3d8bbwe access.appxbundle、access_License1.xml
Excel Microsoft.Office.Desktop.Excel_8wekyb3d8bbwe excel.appxbundle、excel_License1.xml
Outlook Microsoft.Office.Desktop.Outlook_8wekyb3d8bbwe outlook.appxbundle、outlook_License1.xml
PowerPoint Microsoft.Office.Desktop.PowerPoint_8wekyb3d8bbwe powerpoint.appxbundle、powerpoint_License1.xml
发布者 Microsoft.Office.Desktop.Publisher_8wekyb3d8bbwe publisher.appxbundle、publisher_License1.xml
Word Microsoft.Office.Desktop.Word_8wekyb3d8bbwe word.appxbundle、word_License1.xml
将 Office 应用添加到映像

若要将 Office 应用添加到映像,请结合 /Add-ProvisionedAppxPackage 选项使用 DISM。 此选项还要求提供所要添加的每个应用的以下信息:

  • /PackagePath:仅用于指定共享代码包的 .appxbundle 文件的路径。
  • /OptionalPackagePath:用于指定单个应用(例如 Word 或 Excel)的 .appxbundle 文件的路径。
  • /LicensePath:用于指定单个应用的 _License1.xml 文件的路径。 需要为共享包和每个可选应用包指定此参数。
  1. 将 Office OPK 提取到 C:\temp\lab\apps。

  2. 使用 DISM 将所有 Office 应用添加到脱机映像。 以下示例假定 appxbundle 和 license xml 文件位于 USB-B (D:) 上的子目录中。 此外,该示例未使用 /region 开关,因为我们希望 Office 显示在“所有应用”列表中,同时显示为“开始”菜单磁贴。

    DISM /Image:C:\mount\windows /Add-ProvisionedAppxPackage /PackagePath="C:\temp\lab\apps\Office Apps\shared.PreinstallKit\shared.appxbundle" /OptionalPackagePath="C:\temp\lab\apps\Office Apps\excel.PreinstallKit\excel.appxbundle" /OptionalPackagePath="C:\temp\lab\apps\Office Apps\powerpoint.PreinstallKit\powerpoint.appxbundle" /OptionalPackagePath="C:\temp\lab\apps\Office Apps\word.PreinstallKit\word.appxbundle" /OptionalPackagePath="C:\temp\lab\apps\Office Apps\outlook.PreinstallKit\outlook.appxbundle" /OptionalPackagePath="C:\temp\lab\apps\Office Apps\publisher.PreinstallKit\publisher.appxbundle" /OptionalPackagePath="C:\temp\lab\apps\Office Apps\access.PreinstallKit\access.appxbundle" /LicensePath="C:\temp\lab\apps\Office Apps\shared.PreinstallKit\shared_license1.xml" /LicensePath="C:\temp\lab\apps\Office Apps\excel.PreinstallKit\excel_license1.xml" /LicensePath="C:\temp\lab\apps\Office Apps\powerpoint.PreinstallKit\powerpoint_license1.xml" /LicensePath="C:\temp\lab\apps\Office Apps\word.PreinstallKit\word_license1.xml" /LicensePath="C:\temp\lab\apps\Office Apps\outlook.PreinstallKit\outlook_license1.xml" /LicensePath="C:\temp\lab\apps\Office Apps\publisher.PreinstallKit\publisher_license1.xml" /LicensePath="C:\temp\lab\apps\Office Apps\access.PreinstallKit\access_License1.xml"
    

    提示

    需要为共享包以及要安装的每个应用指定 appxbundle 和许可证包。

    注意

    用于在审核模式(联机而不是脱机模式)下添加 Office 应用的命令与此相同,不过需要将 /Image:C:\mount\windows 替换为 /online。

    有关语言支持的说明

    使用 DISM 安装 Office 时,会自动添加与 Windows 映像中语言匹配的 Office 语言文件。

    • 默认情况下,Office 将使用 Windows 的 UI 语言。 若要配置 Windows UI 语言,请参阅“DISM 语言和国际服务命令行选项”。
    • 无法添加不包含在 Windows 映像中的其他 Office 语言。
    • 将为每种 Windows 语言安装 Office 的显示和校对资源。
    • Windows 支持的某些语言不受 Office 的支持 - 对于这种情况,Office 将使用最接近的可用语言(例如,对于 es-mx,它会尝试使用 es-es)。
    • 可以在 Windows“设置”>“时间和语言”>“语言”中找到已安装的 Windows 语言。
  3. 验证 Office 是否已安装:

    Dism /Image:"C:\mount\windows" /Get-ProvisionedAppxPackages
    

    其中 C 是包含该映像的驱动器的驱动器号。

    查看生成的包列表,确认该列表是否包含 Office 应用,例如:

    ...
    Displayname : Microsoft.Office.Desktop.Access
    Version : 16000.8528.2136.0
    Architechture : neutral
    ResourceID : ~
    PackageName : Microsoft.Office.Desktop.Access_16000.8528.2136.0_neutral_~_8wekyb3d8bbwe
    Regions : None
    
    Displayname : Microsoft.Office.Desktop.Excel
    Version : 16000.8528.2136.0
    Architechture : neutral
    ResourceID : ~
    PackageName : Microsoft.Office.Desktop.Excel_16000.8528.2136.0_neutral_~_8wekyb3d8bbwe
    Regions : None
    
    Displayname : Microsoft.Office.Desktop.Outlook
    Version : 16000.8528.2136.0
    Architechture : neutral
    ResourceID : ~
    PackageName : Microsoft.Office.Desktop.Outlook_16000.8528.2136.0_neutral_~_8wekyb3d8bbwe
    Regions : None
    ...
    

    若要让应用显示在“开始”屏幕上,请按照下一部分的步骤操作:配置“开始”磁贴和任务栏固定应用。

    若要完成 Office 安装,需要卸载映像并提交更改,我们将在本实验最后完成所有自定义后执行此操作。

修改“开始”菜单布局

Windows 10 版本 1803 中的新增功能

现在,可将应用固定到“所有应用”列表,而不必固定为“开始”菜单磁贴。 这是通过新的“区域”开关实现的(如上一部分所述)。 在上一部分,我们已将三个应用添加到映像:App1、App2 和 Office。 在本实验中,我们将在 LayoutModification.xml 中省略 App1,以确保 App1 只显示在“所有应用”列表中,而不显示为“开始”菜单磁贴。 我们还将在 LayoutModification.xml 中包含 App2,以演示即使在将应用添加到映像时使用了“region”开关,如果该应用包含在 LayoutModification.xml 文件中的话,它也仍会显示在“开始”菜单中。 换言之,LayoutModification.xml 文件的优先级更高。

“开始”菜单

如果不创建 LayoutModification.xml 文件并使用“无人参与的开始菜单”设置,Windows 将使用 Unattend 文件中指定的前 12 个 SquareTilesDesktoporSquareTiles 设置。 然后,系统会在“开始”菜单末尾的新建组中自动放置这些磁贴。 前六个磁贴放置在第一个 OEM 组中,第二组六个磁贴放置在第二个 OEM 组中。 如果在 Unattend 文件中指定了 OEMName,则此元素的值将用于命名所要创建的 OEM 组。

注意

如果用户使用内置恢复工具重置电脑,“开始”布局和任务栏固定可能丢失。 为确保这些设置保留在设备上,请将恢复映像与 Windows 映像一起更新。

Windows 10 中的“开始”屏幕磁贴布局允许 OEM 将包括 Web 链接、辅助磁贴、经典 Windows 应用程序和通用 Windows 应用在内的磁贴附加到默认“开始”屏幕布局。 OEM 无需重复大量工作就可以使用此布局,使它能适用于多个地区或市场。 另外,OEM 可以向系统区域中经常使用的应用部分添加最多 3 个默认应用,这会提供系统驱动的列表(包括重要或经常访问的系统位置和最近安装的应用)。

若要利用这些新功能并获得 Windows 10 的最可靠且完整的“开始”菜单自定义体验,请考虑创建 LayoutModification.xml 文件。 此文件指定在“开始”屏幕中应如何排列 OEM 磁贴。 有关如何自定义新“开始”菜单布局的详细信息,请参阅自定义 Windows 10“开始”菜单布局

开始:使用包含在 USB-B 文件中的示例 layoutmodification.xml。 对于本实验部分,请从此文件开始。 可以在 USB-B\StartLayout\layoutmodification.xml 中找到它。

若要详细了解 layoutmodification.xml,请参阅 LayoutModification XML

关于“开始”菜单布局

  1. RequiredStartGroups 元素中使用可选的 Region 属性可为不同的区域使用不同的布局。 Region 值必须等于双字母国家/地区代码,如果指定多个区域,请用竖线“|”分隔符分隔各个区域。 组中列出的区域与在使用 /region 选项将应用添加到映像时指定的区域相关。 如果 Windows 设备的国家/地区设置与 RequiredStartGroups 匹配,则 RequiredStartGroups 中排列的磁贴将应用于“开始”菜单。 如果指定一个与区域无关的(或没有可选区域属性的)RequiredStartGroups,则与区域无关的 RequiredStartGroups 将应用于“开始”菜单。

    在 layoutmodification.xml 中,将区域添加到 RequiredStartGroups

    <RequiredStartGroups Region="DE|ES|FR|GB|IT|US">
    
  2. 在 AppendGroup 中指定要添加的磁贴。 OEM 最多可以添加两个 AppendGroup。 以下示例显示名为“Fabrikam Group 1”和“Fabrikam Group 2”的两个组,其中包含设备所在国家/地区与在 Region(在本例中,区域为德国、西班牙、法国、英国、意大利和美国)中指定的国家/地区匹配时要应用的磁贴。 每个组均包含三个磁贴和需要使用的各种元素,具体取决于要固定到“开始”的磁贴。

    <LayoutModificationTemplate
    xmlns="http://schemas.microsoft.com/Start/2014/LayoutModification"
    xmlns:defaultlayout="http://schemas.microsoft.com/Start/2014/FullDefaultLayout"
    xmlns:start="http://schemas.microsoft.com/Start/2014/StartLayout"
    Version="1">
    <RequiredStartGroupsCollection>
    <RequiredStartGroups
      Region="DE|ES|FR|GB|IT|US">
      <AppendGroup Name="Fabrikam Group 1">
          <start:DesktopApplicationTile
            DesktopApplicationID="Microsoft.Windows.Explorer"
          Size="2x2"
          Row="0"
          Column="4"/>
      </AppendGroup>
      <AppendGroup
        Name="Fabrikam Group 2">
        <start:Tile AppUserModelID="Microsoft.MicrosoftEdge_8wekyb3d8bbwe!MicrosoftEdge"
          Size="2x2"
          Row="0"
          Column="0"/>
       </AppendGroup>
    </RequiredStartGroups>
    </RequiredStartGroupsCollection>
    
  3. 在前面的“添加 Microsoft Store 应用”部分,我们要求你使用 /region 开关安装了两个应用:App1 和 App2。 由于我们为这两个应用都包含了 /region 开关,因此两者都会安装并显示在“所有应用”列表中。 但是,要使 App2 也显示为“开始”菜单磁贴,请在 LayoutModification.xml 文件的第二个 <AppendGroup> 中添加以下行,例如:

    由于我们在预配 App2 时已将区域设置为“US”,因此,此处也应在 LayoutModification.xml 中将区域设置为“US”,以确保 App2 仅在美国映像中显示为“开始”菜单磁贴。 因此,请确保 <RequiredStartGroups> 区域参数设置如下:

    <RequiredStartGroups Region="US">
        <AppendGroup Name="MyGroup">
            <start:Tile AppUserModelID="App2!App" Size="2x2" Row="2" Column="0"/>
        </AppendGroup>
    

    或者,至少应包含“US”,例如:

    <RequiredStartGroups Region="DE|US|JA">
        <AppendGroup Name="MyGroup">
            <start:Tile AppUserModelID="App2!App" Size="2x2" Row="2" Column="0"/>
        </AppendGroup>
    
  4. 添加 Microsoft Office“开始”菜单磁贴。 这是参与 Jumpstart 计划的 OEM 所要满足的要求。

    可以在 Windows 10“开始”菜单中显示 Word、PowerPoint 和 Excel 的磁贴。 磁贴显示在 Microsoft 应用的指定区域(在下图中显示在左上角)。 可以在左侧的“应用”列表中访问所有其他应用。

    将以下内容添加到 LayoutModification.xml 文件以添加磁贴:

    <AppendOfficeSuite/>
    <AppendOfficeSuiteChoice Choice="DesktopBridgeSubscription"/>
    

注意

若要添加桌面应用,请使用 start:DesktopApplicationTile 标记。 如果你知道应用的应用程序用户模型 ID,请使用该 ID 来标识它。 否则,如果你固定的磁贴需要 .url 或 .lnk 文件,请将这些文件添加到以下传统“开始”菜单目录:

  • %APPDATA%\Microsoft\Windows\Start Menu\Programs\
  • %ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs\

示例:

Copy E:\StartLayout\Bing.url  "C:\mount\Windows\ProgramData\Microsoft\Windows\Start Menu\Programs"
Copy E:\StartLayout\Paint.lnk "C:\mount\Windows\ProgramData\Microsoft\Windows\Start Menu\Programs"
Copy E:\StartLayout\Bing.url  "C:\mount\Windows\Users\All Users\Microsoft\Windows\Start Menu\Programs"
Copy E:\StartLayout\Paint.lnk "C:\mount\Windows\Users\All Users\Microsoft\Windows\Start Menu\Programs"
  1. 将“开始”菜单布局文件保存为 layoutmodification.xml。
  2. 将保存的文件复制到装载的映像中的 C:\Mount\Windows\Users\Default\Appdata\Local\Microsoft\Windows\Shell 文件夹。 如果该文件夹中已存在 layoutmodification.xml 文件,请将现有文件替换为新文件。

添加许可协议和信息文件

添加特定于 OEM 的许可证

本部分介绍 OEM 如何在 OOBE 期间添加自己的许可条款。

注意

如果包含许可条款,OEM 必须将预安装到电脑的各种语言版本的许可条款包含在内。 许可条款文本必须是 .rtf 文件,并在同一文件夹中提供具有匹配名称的 .html 文件。 有关许可文件的详细信息,请参阅 OEM 许可条款

若要开始添加许可条款,必须为许可文件创建文件夹,然后将 OOBE 配置为在首次启动时显示许可条款。

  1. 在以下目录下根据你的系统语言创建文件夹:C:\mount\windows\Windows\System32\oobe\info\default\

  2. 将 C:mount\windows\Windows\System32\oobe\info\default\ 目录下的每个文件夹命名为与语言对应的语言十进制标识符。 针对 Windows 映像中的每种语言包执行此步骤。

    注意:请参阅此链接以查看对应语言的语言十进制标识符完整列表。

    例如,如果美国英语 (en-us) 和德语 (de-de) 语言包已添加到 Windows 映像,请在 C:\mount\windows\Windows\System32\oobe\info\default\ 中添加名为“1033”(表示美国英语语言)的文件夹。 然后,在同一 C:\mount\windows\Windows\System32\oobe\info\default\ 目录下添加名为“1031”(德语语言)的文件夹。

    MD c:\mount\windows\windows\system32\oobe\info\default\1031
    MD c:\mount\windows\windows\system32\oobe\info\default\1033
    
  3. 为映像中的每种语言创建一个许可条款 .rtf 文件,并将其复制到特定于语言的 oobe 文件夹。

    例如:将英语 agreement.rtf 文件移到 C:\mount\windows\Windows\System32\oobe\info\default\1033\ 目录,将德语 agreement.rtf 文件移到 C:\mount\windows\Windows\System32\oobe\info\default\1031。

    copy E:\resources\english-agreement.rtf c:\mount\windows\windows\system32\oobe\info\default\1033\agreement.rtf
    copy E:\resources\german-agreement.rtf c:\mount\windows\windows\system32\oobe\info\default\1031\agreement.rtf
    
  4. 打开文本编辑器并创建 .html 版本的许可条款。 将这些条款保存到 .rtf 版本所在的同一文件夹。 可以使用 OEM 许可条款中的 EULA 示例来创建示例文件。 EULA 文件的名称应该相同,只是扩展名不同。

    C:\mount\windows\windows\system32\oobe\info\default\1033\agreement.html  (English version)
    C:\mount\windows\windows\system32\oobe\info\default\1031\agreement.html  (German version)
    
  5. 创建 oobe.xml 文件以指定许可协议 .rtf 文件路径。 Windows 将自动查找随附的 .html 文件。 下面是一个示例 oobe.xml,其路径为 USB-B\ConfigSet\oobe.xml

     <FirstExperience>
    <oobe>
        <oem>
            <eulafilename>agreement.rtf</eulafilename>
        </oem>
    </oobe>
    </FirstExperience>
    
  6. 将 oobe.xml 文件复制到 C:\mount\windows\windows\system32\oobe\info\

  7. 将 oobe.xml 复制到前面创建的特定于语言的文件夹中。例如:将 oobe.xml 复制到 C:\mount\windows\Windows\System32\oobe\info\default\1033,其中包含一个名为 agreement.rtf 的英语版文件。 若要添加德语版协议,请将 oobe.xml 复制到 C:\mount\windows\Windows\System32\oobe\info\default\1031\ 目录,其中包含德语版 agreement.rtf 文件。

    copy E:\configset\oobe.xml c:\mount\windows\windows\system32\oobe\info\default\1033
    copy E:\configset\oobe.xml c:\mount\windows\windows\system32\oobe\info\default\1031
    
  8. 现在,每个语言文件夹都包含该对应语言的 oobe.xml、agreement.rtf 和 agreement.thml 文件。

当映像首次启动进入 OOBE 时,它将显示许可协议。

创建一个映像信息文件并将其添加到映像

  • 创建指示 Windows 映像于何时创建的 csup.txt 文件。 此文件必须包括映像创建的日期,日期格式为“年-月-日”,不得包含其他字符,且应显示在文件顶部的一行中。 此命令将创建以下文件:

    echo 4-24-2018 >"C:\mount\windows\Windows\csup.txt"
    

使用应答文件自定义 Windows

应答文件(或无人参与文件)可用于在安装期间修改你的映像中的 Windows 设置。 还可以在映像中创建触发脚本的设置,在用户首次创建其帐户并选择默认语言后会运行这些脚本。 使用应答文件可以指定各种设置选项,包括磁盘分区方式、Windows 映像的安装位置和要应用的产品密钥。 还可以指定应用于 Windows 安装的值,如用户帐户的名称、显示设置以及 Internet Explorer 收藏夹。 安装程序的应答文件通常称为 Unattend.xml。

Unattend 文件包括多个部分,其中每个部分在整个 Windows 安装过程中的不同时间进行处理。 这些阶段称为配置阶段。 下面是最常用的阶段:

可以指定要在哪个配置阶段添加新设置:

  • 1 - windowsPE:这些设置由 Windows 安装程序使用。 如果你正在修改现有映像,通常可以忽略这些设置。
  • 2 - offlineServicing:在使用 DISM 将 unattend 文件应用于脱机映像时处理 offlineServicing 中的设置。
  • 4 - specialize:大多数设置都应在此处添加。 这些设置可同时在审核模式和 OOBE 开始时触发。 如果你需要进行多个更新或测试设置,请再次一般化设备,然后将另一批设置添加到 Specialize 配置阶段中。
  • 6 - auditUser:启动审核模式后立即运行。 AuditUser 是运行系统测试脚本的适当位置。 我们将添加 Microsoft-Windows-Deployment\RunAsynchronousCommand 作为示例。 若要了解详细信息,请参阅 将自定义脚本添加到 Windows 安装程序。
  • 7 - oobeSystem:请慎用。 这些设置的大多数在用户完成 OOBE 之后运行。 一个例外是 Microsoft-Windows-Deployment\Reseal\Mode = Audit 设置,我们将使用它来绕过 OOBE 并使电脑启动进入审核模式。 如果你的脚本依赖于知道用户在 OOBE 期间选择哪种语言,请将它添加到 oobeSystem 阶段。

尽管你可以在审核模式中设置很多 Windows 设置,但是某些设置只能使用应答文件或 Windows 配置设计器来设置,如添加制造商的支持信息。 有关应答文件设置(也称为无人参与设置)的完整列表,请参阅无人参与的 Windows 安装程序参考

创建应答文件

使用 Windows 系统映像管理器 (SIM) 创建和修改 unattend 文件。 SIM 是作为 ADK 的一部分安装的。 我们在 USB-B 中包含了一些应答文件来帮助你入门。 确保应答设置包括 OEM 策略文档中所述的必需设置:

  • 对于 OA 3.0 系统:

    md c:\mount\windows\windows\panther
    copy /y E:\AnswerFiles\OA3.0\Unattend.xml C:\Mount\Windows\Windows\Panther
    

    (其中 E: 是 USB-B)

  • 对于非 OA 3.0 系统:

    md c:\mount\windows\Windows\panther
    copy /y E:\AnswerFiles\Non_OA3.0\Unattend.xml C:\Mount\Windows\Windows\Panther
    

    (其中 E: 是 USB-B)

在 Windows SIM 中创建目录文件

目录文件 (.clg) 是包含适用于特定 Windows 映像的设置信息的文件。 在 SIM 中使用 Windows 映像时,必须首先为你正在使用的 Windows WIM 创建一个目录文件。

  1. 启动 Windows 系统映像管理器 (WSIM)。
  2. 单击“文件”>“选择 Windows 映像”。
  3. 在选择 Windows 映像中,浏览并选择映像文件 (D:\install.wim)。
  4. 选择“Windows 10 家庭版”,然后单击“确定”。
  5. 单击是以创建目录文件。 Windows SIM 根据映像文件创建该文件,并将其保存到映像文件所在的文件夹中。 这个过程可能需要几分钟。

目录文件将显示在 Windows 映像窗格中。 Windows SIM 列出该映像中的可配置组件和程序包。

创建应答文件

如果未使用现有的 unattend 文件,可以在 Windows SIM 中创建一个新文件:

  • 单击“文件”>“新建应答文件”

新的应答文件将显示在右侧窗格中。

添加应答文件设置

本部分介绍如何创建一个可以在部署 Windows 映像时配置设置的应答文件。

在开始之前,请在装载的 Windows 映像中创建名为 Panther 的文件夹。 Windows 将自动在此文件夹中查找应答文件。

md c:\mount\windows\Windows\panther
添加 OEM 信息(可选)
  1. 在“Windows 映像”窗格中展开“组件”,右键单击“amd64_Microsoft-Windows-Shell-Setup_(version)”,然后选择“将设置添加到阶段 4 - specialize”。

  2. 在“应答文件”窗格中,选择“Components\4specialize\amd64_Microsoft-Windows-Shell-Setup_neutral\OEMInformation”。

  3. 在“OEMInformation 属性”窗格的“设置”部分,设置:

    Manufacturer=Fabrikam
    Model=Notebook Model 1
    Logo=C:\Fabrikam\Fabrikam.bmp
    
  4. 在 Panther 文件夹中将应答文件保存为 USB-B\AnswerFiles\unattend.xml

接下来,必须确保上面指定的徽标包含在 Windows 映像中。

  1. 创建最大大小为 120x120 像素的 32 位彩色图像。 在技术人员电脑上,将该图像保存为 D:\AnswerFiles\Fabrikam.bmp 文件。 我们在 USB-B 上包含了以下示例图像,可将其用于本实验:D:\Logos\Fabrikam.bmp。

  2. 在装载的 Windows 映像中创建名为 Fabrikam 的文件夹。

    mkdir c:\mount\windows\Fabrikam
    
  3. 将 Fabrikam.bmp 复制到刚刚创建的 Fabrikam 文件夹中:

    copy fabrikam.bmp c:\mount\windows\fabrikam
    
将设备设置为自动启动进入审核模式

使用同一 unattend.xml 文件,将电脑设置为自动启动进入审核模式

  1. 在“Windows 映像”窗格中展开“组件”,右键单击“amd64_Microsoft-Windows-Deployment_(version)”,然后选择“将设置添加到阶段 7 - oobeSystem”。
  2. 在“应答文件”窗格中,选择“Components\7 oobeSystem\amd64_Microsoft-Windows-Deployment_neutral\Reseal”。
  3. 在“Reseal 属性”窗格的“设置”部分,选择 Mode=Audit
  4. 在 Panther 文件夹中将应答文件保存为 unattend.xml。
启用 S 模式

注意

如果你不想启用 S 模式,可以跳到下一部分

Windows 10 版本 1803 中的新增功能:Windows 10 S 不再是独立于其他 Windows 版本的 SKU。 现在,S 模式是可以在家庭版和专业版 SKU 上激活的模式。

设置 S 模式本部分介绍如何在 Windows 映像中启用 S 模式。 我们将使用包含“阶段 2 - offlineServicing”中某项设置的 unattend 文件,并使用 DISM 将其应用于装载的 Windows 映像。

  1. 使用 Windows SIM 修改 unattend.xml。

  2. 将 amd64_Microsoft_Windows_CodeIntegrity 组件添加到“阶段 2 - offlineServicing”。

  3. 将 amd64_Microsoft_Windows_CodeIntegrity\SkuPolicyRequired 设置为 1

  4. 在 Panther 文件夹中将应答文件保存为 unattend.xml。

  5. 使用 DISM 应用 unattend 文件并启用 S 模式:

    dism /image:C:\mount\windows /apply-unattend:C:\mount\windows\windows\panther\unattend.xml
    

    注意:仅当使用 DISM 应用了 unattend 文件时,才会处理“阶段 2 - offlineServicing”。

S 模式现在会应用于 Windows 映像。 当电脑启动时,将在 Windows 安装上强制实施在 Windows 10 S 中强制实施的相同代码完整性策略。

启用制造模式

如果你打算在审核模式下对映像进行其他更改(例如编辑注册表、运行脚本或从命令提示符运行命令),必须暂时启用制造模式,该模式允许一般在 S 模式下会被阻止的未签名代码在审核模式下运行。 这样,你便可以在制造过程中运行脚本、安装程序和诊断工具(即未签名代码)。 可以通过将一个注册表项添加到脱机映像来启用制造模式,在启动进入审核模式后通过删除该注册表项来禁用制造模式。

  1. 在装载的映像上,将其中的 SYSTEM 注册表配置单元加载到技术人员电脑上的 regedit 中。 我们将使用一个名为 HKLM\Windows10S 的临时配置单元。

    reg load HKLM\Windows10S C:\Mount\Windows\Windows\System32\Config\System
    
  2. 添加 manufacturing 注册表项。

    reg add HKLM\Windows10S\ControlSet001\Control\CI\Policy /v ManufacturingMode /t REG_DWORD /d 1
    
  3. 从技术人员电脑中卸载注册表配置单元。

    reg unload HKLM\Windows10S
    

卸载映像并提交更改(如下所示)后,S 模式 Windows 10 映像将包含 manufacturing 注册表项,使你可以在审核模式下运行未签名代码。

重要

在交付 S 模式 Windows 10 设备之前,请务必删除 manufacturing 注册表项。 我们稍后会在本实验中介绍如何执行此操作,你也可以在制造模式中了解相关信息

设置 Windows 版本

在本部分,我们将 Windows OS 版本从家庭版升级到专业版。

注意

  • 你无法将 Windows 映像设置为更低的版本。
  • 注意:请不要对已更改为更高版本的映像使用该过程。
  • 由于在参考设备上启动此映像之前不会启用 S 模式,因此是在应用无人参与设置(包括 S 模式 <SkuPolicyRequired> 元素)之前还是之后运行 /Set-Edition 命令无关紧要。
  • 一般情况下,你不会像此处所示那样脱机切换版本。 与其升级版本,不如一开始就装载一个 Windows 专业版 wim 映像。 此处包含此步骤只是为了演示 /Set-Edition 命令的用法。
  1. 通过运行以下命令来确定可用版本,以确定可以将映像升级到的映像:

    Dism /Get-TargetEditions /Image:C:\mount\windows
    

    请注意可用版本 ID。

  2. 将版本升级到专业版。

    Dism /Set-Edition:Professional /Image:C:\mount\windows
    

通过恢复保留 Windows 设置

在恢复方案中,Windows 不会自动保存通过应答文件创建的设置、使用 LayoutModification.xml 创建的 Windows“开始”菜单自定义项,或来自 oobe.xml 的首次登录信息。

若要确保 Windows 保存自定义项:

  • 将 unattend.xml、LayoutModification.xml 以及 C:\mount\windows\Windows\System32\OOBE 文件夹的副本保存到 C:\Recovery\OEM 中。

  • 将脚本 ResetConfig.xml 和 EnableCustomizations.cmd 添加到 C:\Recovery\OEM。 从示例脚本:通过恢复保持 Windows 设置 中获取这些脚本。

优化 WinRE(第 1 部分)

  1. 增大 WinRE 映像的暂存空间大小。

    Dism /image:c:\mount\winre /set-scratchspace:512
    
  2. 清理未使用的文件并减小 winre.wim 的大小

    dism /image:"c:\mount\winre" /Cleanup-Image /StartComponentCleanup
    

卸载映像

  1. 关闭所有可能正在访问映像中文件的应用程序,包括文件资源管理器。

  2. 提交更改并卸载 Windows RE 映像:

    Dism /Unmount-Image /MountDir:"C:\mount\winre" /Commit
    

    其中 C 是包含该映像的驱动器的驱动器号。

    此过程可能需要几分钟。

  3. 创建已更新的 Windows RE 映像的备份副本,并将旧的 WinRE 映像替换为新导出的映像:

    dism /export-image /sourceimagefile:c:\mount\windows\windows\system32\recovery\winre.wim /sourceindex:1 /DestinationImageFile:c:\temp\lab\winre_bak.wim
    Del c:\mount\windows\windows\system32\recovery\winre.wim
    Copy c:\temp\lab\winre_bak.wim c:\mount\windows\windows\system32\recovery\winre.wim
    

    如果出现提示,请为文件指定 F

    故障排除:如果在指定目录下看不到 winre.wim,请使用以下命令将该文件设置为可见:

    attrib -h -a -s C:\mount\windows\Windows\System32\Recovery\winre.wim
    
  4. 检查 Windows RE 映像的新大小:

    Dir "C:\mount\windows\Windows\System32\Recovery\winre.wim"
    
  5. 根据新 winre.wim 的大小调整部署脚本中的分区大小,使这些分区为 winre.wim 留出足够的空间,另外还有一些额外的可用空间。

    按照以下分区布局大小图表确定 createpartitions-<firmware>-<imageformat>.txt 文件中恢复分区的大小。 将 winre.wim 复制到隐藏分区后所剩的可用空间量。 有关详细信息,请参阅以下磁盘分区规则。

    分区大小 可用空间
    小于 500 MB 至少 50 MB 可用空间
    450 MB - 680 MB 至少 320 MB 可用空间
    大于 680 MB 1024 MB 可用空间

    createpartitions diskpart 脚本中恢复分区大小的示例:

    rem == 3. Windows RE tools partition ===============
    create partition primary size=465
    
  6. 像优化 WinRE 映像那样优化 Windows 映像:

    Dism /Image:c:\mount\windows /Cleanup-Image /StartComponentCleanup
    
  7. 提交更改并卸载 Windows 映像:

    Dism /Unmount-Image /MountDir:"C:\mount\windows" /Commit
    

    其中 C 是包含该映像的驱动器的驱动器号。 此过程可能需要数分钟。

  8. 通过导出映像完成映像优化。 在导出过程中,DISM 会删除已取代的文件,并且映像中的文件大小会减小。 将 Windows 映像导出到新的映像文件中:

    Dism /Export-Image /SourceImageFile:"C:\temp\lab\Images\basicimage.wim" /SourceIndex:1 /DestinationImageFile:"C:\temp\lab\Images\install.wim"
    

现在,你已获得一个可部署到其他电脑的自定义 Windows 映像。 下一部分会介绍如何将映像部署到参考电脑、进行联机更改,然后最终确认 Windows 映像,使其为最终部署做好准备。

将映像部署到新电脑

在本部分,我们将映像部署到某台电脑,以便可以在审核模式下自定义该映像。 在开始学习本部分之前:

  • 将自定义映像复制到 USB-B\Images

    copy c:\temp\lab\images\install.wim e:\images
    copy c:\temp\lab\images\winre_bak.wim e:\images
    
  • 确保 USB-B\Deployment 中包含部署脚本。 将 USB-B 下载内容提取到 USB-B 时,应已复制这些脚本。

启动进入 WinPE

如果尚未在要部署映像的设备上启动进入 WinPE,现在请启动进入 WinPE:

  1. 将 USB 启动盘连接到 WinPE 分区并启动参考计算机。
  2. 如果使用两个不同的 USB 驱动器,请在启动 WinPE 后连接 USB-B。
  3. 在 X:\Windows\system32> 命令行下,键入 diskpart 并按 Enter。
  4. 在 \DISKPART> 命令行下,键入 list volume
  5. 在“Label”列中,记下“Ltr”列下显示的卷标。 这是 USB 启动盘的驱动器号。 (例如 E)
  6. 键入 exit 退出 Diskpart

使用部署脚本应用映像

运行一个脚本来创建分区并应用映像。 我们将使用 USB-B\deployment 中的 applyimage.bat 来执行此操作。

ApplyImage.bat 使用 diskpart 脚本创建分区并定义分区布局。 此脚本及其调用的子脚本必须放在同一个子文件夹中。 可根据需要更新这些脚本以更改分区大小。

注意

如果要捕获最终映像并将其部署为 FFU,请选择不配置恢复的选项。 这样,在应用 FFU 后,你可以根据需要扩展 Windows 分区。 可以在扩展 Windows 分区后再配置恢复。

  1. 运行 applyimage.bat 并指定要应用的映像:

    D:
    cd Deployment
    ApplyImage.bat D:\Images\install.wim
    

    其中 D: 是脚本和映像所在的 USB 存储驱动器的驱动器号。

    出现脚本提示时:

    1. 选择是否配置恢复分区

      • Y:配置 Windows 恢复分区
      • N:不配置恢复分区。 可在稍后再配置恢复分区。 如果要捕获映像并将其部署为 FFU,请选择此选项。
    2. Y 格式化驱动器

    3. 选择 N,以便不部署为精简 OS。

    4. N 指示该映像不包含扩展属性 (EA)

      注意

      请仅在基于闪存驱动器的设备上使用精简 OS,因为精简 OS 的性能严重依赖于存储设备的功能。 不建议在搭载机械硬盘的设备上使用精简 OS。 有关详细信息,请参考“精简 OS”。

  2. 移除 USB 驱动器并重启参考电脑。

    exit
    

    电脑应会根据我们前面创建的 unattend 文件的设置启动进入 Windows 审核模式。 如果未使用将电脑设置为启动进入审核模式的 unattend.xml 文件,可以在 OOBE 期间按 Ctrl+Shift+F3 启动进入审核模式。

进行联机自定义(审核模式)

你可以在审核模式下使用熟悉的 Windows 环境自定义 Windows。 在审核模式下,你可以添加 Windows 桌面应用程序、更改系统设置、添加数据和运行脚本。

要确保你的审核模式更改包括在恢复映像中,你需要使用 ScanState 将这些更改捕获到一个预配包中。 如果出现了问题,系统恢复工具会使用此包来还原更改。 (可选)你可以直接从压缩的恢复文件运行这些应用程序来节省驱动器空间;这称为单实例存储。

若要捕获映像中的更改并将其应用于其他设备,需要使用 Sysprep 来通用化映像。

在审核模式下验证自定义

我们不建议在制造过程中将电脑连接到 Internet,也不建议在审核模式下从 Windows 更新安装更新,因为这可能会在运行 sysprep 期间生成错误。

  1. 安装程序完成后,计算机将在 Audit 模式下以管理员身份自动登录到 Windows。
  2. 验证应答文件中的更改(查看制造商名称、支持电话号码和其他自定义项)是否存在。

验证版本

在本实验的前面部分,我们已将版本从 Windows 家庭版升级到了 Windows 专业版。 验证此项更改:

  1. 以管理员身份打开命令提示符

  2. 运行:

    dism /online /get-current-edition
    
  3. 确保该版本是正确版本。 它应如下所示:

    Current edition is:
    
    Current Edition : Professional
    
    The operation completed successfully.
    

    注意:如果使用启用了 S 模式的设备,则版本仍会显示“Professional”。这是因为 S 模式只是一种模式,而不是版本。

验证 S 模式

如果在本实验的前面部分中启用了 S 模式,请验证是否启用了 S 模式。

  1. 从“开始”菜单打开“设置”。
  2. 在“设置”中,打开“更新和安全”
  3. 在左侧窗格中选择“激活”

如果为设备启用了 S 模式,则此处会显示该模式。

应用和 Store 商机

通过 Windows 10 和 Microsoft Store,你在品牌和设备差异化、创造收益和客户接触方面可以获得巨大的商机。

Microsoft Store 应用是 Windows 10 体验的核心要素。 它们属于 Windows 通用应用,因此你可以为运行 Windows 10 的台式机、平板电脑或手机生成应用。 作为 OEM,你可以通过在自己制造的优质硬件上提供大量增值软件与服务,提供有吸引力的客户体验和提升品牌忠诚度。

重要说明:必须在审核模式下设置以下注册表项。

必须更改注册表设置才能添加 OEM ID。 如果你是 OEM Microsoft Store 计划参与者,请联系 PartnerOps@microsoft.com 获取 OEM ID。

Item 注册表中的位置
OEMID HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Store, (REG_SZ) OEMID
SCM ID HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Store, (REG_SZ) StoreContentModifier

OEMID

  1. 在命令提示符下运行 regedit.exe
  2. 导航到“HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Store”
  3. 在“(默认)”下右键单击 -> 单击“新建”
  4. 单击“字符串值”
  5. 键入“OEMID”
  6. 双击“OEMID”并在“数值数据”中输入 OEM 名称:文本字段

SCMID

  1. 在命令提示符下运行 regedit.exe
  2. 导航到“HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Store”
  3. 在“(默认)”下右键单击 -> 单击“新建”
  4. 单击“字符串值”
  5. 键入“StoreContentModifier”
  6. 双击“StoreContentModifier”并在“数值数据”中输入 OEM 名称:文本字段

重要

在 Windows 10 中,OEMID 注册表项不会在 PBR 期间自动还原。 请参阅本指南的“ScanState”部分,了解如何在执行 PBR 操作期间还原 OEMID 注册表项。

准备映像以实现一键重置

本部分提供有关设置恢复环境以实现一键重置 (PBR) 方案的指导。

有关详细信息,请参考“一键重置”、“Windows 恢复环境 (Windows RE)”以及“硬盘驱动器和分区”。

一键重置是一个内置的恢复工具,使用户可以在恢复 OS 的同时保留其数据和重要自定义项,而无需提前备份数据。 该工具将向用户提供更多恢复选项,使其能够自信地修复自己的电脑,无需自定义恢复应用程序。

准备 ScanState

若要开始使用一键重置,需要将 ScanState 复制到 USB-B。

使用 ScanState 捕获映像中的经典 Windows 应用程序和设置。

注意:你将使用技术人员电脑来准备 ScanState。

  1. 在技术人员电脑上插入 USB-B

  2. 以管理员身份打开部署和映像工具命令提示符

  3. 运行 copydandi.cmd,将所需的文件复制到 USB-B\scanstate:

    Copydandi.cmd amd64 e:\scanstate
    

    其中 E: 是 USB-B 的驱动器号。

创建 ScanState 迁移文件

在本部分,你将创建一个配置文件,用于在一键重置期间还原文件和注册表项。

创建用于还原在制造过程中手动输入的注册表值的迁移 XML 文件。 下面的示例将还原之前在本文档中设置的 OEMID 注册表值。

注意:USB-B\recovery\recoveryimage\regrecover.xml 已包含注册表值。 可以使用此文件,而无需创建新文件。

  1. 打开记事本

  2. 将以下 xml 复制并粘贴到记事本中。 此代码告知 ScanState 迁移 OEMID 注册表项:

    <migration urlid="https://www.microsoft.com/migration/1.0/migxmlext/test">
         <component type="System" context="UserAndSystem">
              <displayName>OEMID</displayName>
            <role role="Settings">
                <rules>
                    <include>
                        <objectSet>
                            <pattern type="Registry">HKLM\Software\Microsoft\Windows\CurrentVersion\Store [OEMID]</pattern>
                        </objectSet>
                    </include>
                </rules>
            </role>
        </component>
    </migration>
    
  3. 如果启用了 S 模式,请告知 ScanState 排除 manufacturing 注册表项,确保不会迁移该项。 添加以下规则以排除该注册表项:

    <unconditionalExclude>
        <objectSet>
            <pattern type="Registry">HKLM\SYSTEM\CurrentControlSet\Control\CI\Policy [ManufacturingMode]</pattern>
        </objectSet>
    </unconditionalExclude>
    
  4. 将文件保存为 regerecover.xml。

使用 ScanState 创建恢复包

在参考电脑上:

使用 ScanState 将已安装的自定义项捕获到预配程序包中,然后将其保存到 C:\Recovery\customizations。 我们将使用 USB-B\Recovery\RecoveryImage 中的示例来创建预配程序包。

重要说明:要使一键重置正常运行,包必须是存储在 C:\Recovery\Customizations 中的 .ppkg 文件。

  1. 创建恢复 OEM 文件夹并复制 USB-B\Recovery\RecoveryImage 的内容

    重要说明:若要在恢复期间保留自定义的“开始”布局菜单,在恢复期间需要再次复制 layoutmodification.xml。 我们将其复制到此处,然后在恢复期间使用 EnableCustomizations.cmd 进行复制。

    Copy E:\Recovery\RecoveryImage c:\recovery\OEM
    Copy E:\StartLayout\layoutmodification.xml c:\recovery\OEM
    
  2. 运行 ScanState,收集应用和自定义项

    对于 x64 Windows 10 电脑:

    mkdir c:\recovery\customizations
    E:\ScanState\scanstate.exe /apps /ppkg C:\Recovery\Customizations\apps.ppkg /i:c:\recovery\oem\regrecover.xml /config:E:\scanstate\Config_AppsAndSettings.xml /o /c /v:13 /l:C:\ScanState.log
    

    其中 E: 是 USB-B 的驱动器号

  3. ScanState 成功完成后,删除 scanstate.log 和 miglog.xml 文件:

    del c:\scanstate.log
    del c:\miglog.xml
    

创建扩展性脚本以还原其他设置

你可以通过配置可扩展性点自定义一键重置体验。 这允许你运行自定义脚本、安装其他应用程序,或者保留其他用户、应用程序或注册表数据。

在恢复期间,PBR 将调用我们要配置的 EnableCustomizations.cmd,该命令执行两项操作:

  1. 将用于初始部署的 unattend.xml 文件复制到 \windows\panther。
  2. 将 layoutmodification.xml 复制到系统。

此文件将在 PBR 期间从这两个应答文件还原其他布局设置。

[!Important 必须将恢复脚本和 unattend.xml 复制到 C:\Recovery\OEM,以便 PBR 拾取并还原 unattend.xml 中定义的设置。

复制用于还原设置的 unattend.xml 文件

对于 OA 3.0 系统:

Copy e:\AnswerFiles\oa3.0\unattendsysprep.xml c:\Recovery\OEM\unattend.xml

对于非 OA 3.0 系统:

Copy e:\AnswerFiles\non_oa3.0\unattendsysprep.xml c:\Recovery\OEM\unattend.xml

复制 winre.wim 备份

在部署期间会移动 winre.wim 文件。 在捕获最终映像之前,必须将我们创建的备份 winre.wim 复制回来,否则恢复环境无法在最终映像部署中正常工作。

Copy e:\images\winre_bak.wim c:\windows\system32\recovery\winre.wim

重新密封映像

在本部分,我们将使用 sysprep.exe 重新密封映像,并为工厂部署做好准备。

  1. 删除已经为预加载的应用程序创建的安装文件夹和文件。 这些文件夹可能会增大捕获的 .wim 文件的大小。
  2. 如果 SysPrep 工具已打开,请将其关闭并以管理员模式打开命令提示符。
  3. 使用包含附加设置的应答文件来通用化映像:
C:\Windows\System32\Sysprep\sysprep /oobe /generalize /unattend:c:\recovery\oem\Unattend.xml /shutdown

删除 S 模式 Windows 10 的 manufacturing 注册表项

如果启用了制造模式,请删除 manufacturing 注册表项:

  1. 打开命令提示符。

  2. 删除该注册表项:

    reg delete HKLM\system\ControlSet001\Control\CI\Policy /v ManufacturingMode
    

    重要

    请不要交付使用了该注册表项的 S 模式 Windows 10 设备。

最终确认并捕获映像

下面介绍如何最终确认并捕获工厂映像,以进行大规模部署。 若要开始学习本部分,请确保在上一部分中运行 sysprep 后已关闭参考计算机。

  1. 将参考计算机引导进入 WinPE。
  2. 启动 WinPE 后,连接 USB-B。

疑难解答

  • 如果参考电脑从其内部 HDD 启动,则 Windows 将进入专用化和 OOBE 了阶段。 如果任一配置阶段已完成,你将无法捕获稳定的通用化映像。 如果其中任一阶段已完成,你需要再次通用化映像。 可以在审核模式下执行该操作(在 OOBE 期间按 Ctrl+Shift+F3)<><><>。 在审核模式下,运行上述 Sysprep 命令。 确保电脑在下次重启时启动进入 WinPE。

  • 如果系统仍然启动进入内部 HDD,请检查电脑的启动优先级。 确保 USB 的启动优先级高于内部硬盘驱动器。

  • 使用 diskpart 标识 Windows 分区驱动器号。

    1. 在 X:\windows\system32> 提示符下,键入“diskpart”并按 Enter 键启动 Diskpart。

    2. 在 \DISKPART> 提示符下键入 list volume

    3. 在“Label”列下,找到标有“Windows”的卷。

    4. 记下“Ltr”列下的、分配给该卷的驱动器号(例如 C)。 这是 USB 启动盘的驱动器号。

    C:\WINDOWS\system32>diskpart
    
    Microsoft DiskPart version 10.0.19628.1
    
    Copyright (C) Microsoft Corporation.
    
    On computer: Windows
    
    DISKPART> list volume
    
    Volume ###  Ltr  Label        Fs     Type        Size     Status     Info
    ----------  ---  -----------  -----  ----------  -------  ---------  --------
    Volume 0         System       NTFS   Partition    100 MB  Healthy    System
    Volume 1     C   Windows      NTFS   Partition    465 GB  Healthy    Boot
    Volume 2         Recovery     NTFS   Partition    500 MB  Healthy    Hidden
    Volume 3     D                       Removable         B  No Media
    
    5. Type exit to quit Diskpart.
    
    

(仅限 CompactOS)转换已安装的自定义项

本部分介绍如何减小 ScanState 包的大小。

重要

仅当你要部署到存储有限的设备时才需要执行此步骤。 单实例将影响某些桌面应用程序的启动性能。

有关详细信息,请参阅精简 OS

若要减小 ScanState 恢复包的大小,请在参考设备上的 WinPE 中运行以下命令:

DISM /Apply-CustomDataImage /CustomDataImage:C:\Recovery\Customizations\apps.ppkg /ImagePath:C:\ /SingleInstance

捕获映像

本部分介绍如何捕获 sysprep 映像。 可以捕获 WIMFFU

捕获 WIM

在参考电脑上:

  1. 标识 Windows 分区驱动器号。

    1. 在 X:\windows\system32> 提示符下,键入“diskpart”并按 Enter 键启动 Diskpart。

    2. 在 \DISKPART> 提示符下,键入“list volume”

    3. 在“Label”列下,找到标有“Windows”的卷

    4. 记下“Ltr”列下的、分配给该卷的驱动器号(例如 C)。 这是需要使用的驱动器号

    5. 键入 exit 退出 Diskpart

  2. 将 Windows 分区的映像捕获到 USB-B。 此过程需要几分钟。

    注意:建议在运行 DISM 时使用缓存目录。 在此步骤中,我们将在 USB-B 启动盘上创建 scratchdir 用于保存临时文件,但你可以选择在任何具有可用空间的硬盘驱动器上创建暂存目录。

    MD e:\scratchdir
    Dism /Capture-Image /CaptureDir:C:\ /ImageFile:E:\Images\CustomImage.wim /Name:"CustomImage" /scratchdir:e:\scratchdir
    

    这会将名为 CustomImage.wim 的映像捕获到 E:\Images。 映像捕获完成后,可以关闭参考电脑。

捕获映像后,可以转到验证最终映像

捕获 FFU

在参考电脑上:

  1. 标识 Windows 分区驱动器号。

    1. 在 X:\windows\system32> 提示符下,键入“diskpart”并按 Enter 键启动 Diskpart。

    2. 在 \DISKPART> 提示符下,键入“list disk”

    3. 在“Disk ###”列下,找到包含 Windows 安装的磁盘,并记下分配的磁盘编号。 此编号类似于“Disk 0”。

    4. 键入 exit 退出 Diskpart

  2. 将 Windows 磁盘的映像捕获到 USB-B。 此过程需要几分钟。

    DISM.exe /capture-ffu /imagefile=E:\Images\CustomImage.wim /Name:"CustomImage" /capturedrive=\\.\PhysicalDrive0 /description:"Windows 10 FFU"
    

    这会将名为 CustomImage.wim 的映像捕获到 E:\Images。 映像捕获完成后,可以关闭参考电脑。

验证最终映像

本部分介绍如何部署捕获的映像,以进行测试和验证。

将映像部署到参考设备

  1. 将要在其上测试映像的电脑启动进入 WinPE。

  2. 运行 applyimage.bat 以部署映像。

    如果捕获了名为 customimage.wim 的 WIM:

    E:\Deployment\applyimage.bat E:\Images\customimage.wim
    

    or

    如果捕获了名为 CustomImage.FFU 的 FFU:

    E:\Deployment\applyimage.bat E:\Images\CustomImage.FFU
    
  3. 按照脚本的提示应用该映像。

  4. 键入 exit 关闭 WinPE 并重启电脑。

验证配置

电脑将重启并首次启动进入 Windows。

  1. 在 OOBE 中,创建一个稍后将被删除的虚构用户。

  2. 验证所有应用程序和脱机自定义项是否仍在映像中并在正常工作。

    需要检查的一些项:

    • 任务栏
    • 已固定应用
    • 桌面壁纸设置为显示正确的图像
    • OEM 信息正确显示
    • OEM 应用 ID 注册表项已设置
    • 默认主题是你选择的主题
    • Store 应用正常启动
    • 桌面应用程序正常启动
    • 通过 SPP 应用的桌面应用程序可正常启动
    • 如果启用了 S 模式,请确保已删除 manufacturing 注册表项

验证恢复

  1. 从以下入口点运行“保留我的文件”和“删除所有内容”功能,验证自定义项在恢复后是否已还原并可继续正常运行:

    • 设置 a. 在“开始”菜单单击“设置”,b. 在“设置”应用中,依次单击“更新和安全”、“恢复”。 c. 单击“重置此电脑”下的“开始”按钮,然后按照屏幕上的说明进行操作。

    • Windows RE a. 在 Windows RE 的“选择一个选项”屏幕中,单击“故障排除”b. 单击“重置此电脑”,然后按照屏幕上的说明进行操作

  2. 验证是否可以创建恢复媒体,并通过运行裸机恢复功能来验证其功能:a. 在控制面板中启动“创建恢复驱动器”。b. 按照屏幕上的说明创建 USB 恢复驱动器。c. 从 USB 恢复驱动器启动电脑。d. 在“选择一个选项”屏幕中,单击“故障排除”。e. 单击“从驱动器恢复”,然后按照屏幕上的说明进行操作

注意:Windows 10 中的一键重置 UI 已经过重新设计。 UI 中“保留我的文件”选项现在对应于“保留我的文件”功能。 “删除所有内容”对应于“删除所有内容”功能。

优化最终映像

现在,你已获得一个几乎已做好部署准备的 Windows 映像。 本部分介绍如何对映像进行最后的微调,以便为部署做好准备。

  • 通过导出映像的副本,从映像中删除未使用的包。

    Dism /export-image /sourceimagefile:E:\images\customimage.wim /sourceindex:1 /destinationimagefile:e:\images\MasterImage_Pro.wim
    

最终交付

在交付电脑之前,必须至少启动电脑一次,以完成 Windows 安装程序的专用化配置阶段。

特殊化配置阶段向电脑添加特定硬件信息,并在 Windows OOBE 出现的时候完成。

有关更多详细信息,请参阅 OEM 策略文档。

减少磁盘占用量

整篇指南已介绍了减少磁盘占用量的多种方式:

  • 使用 Dism /export-image
  • 使用精简 OS
  • 结合使用精简 OS 和单实例

本部分介绍可以获得更多可用空间的其他几种方法。

缩小和关闭 Hiberfile

缩小和关闭 hiberfile 可以在部署的 OS 上恢复 400MB 到 1.5GB 的 OS 空间。

将 Hiberfile 缩小 30%

结合 unattend.xml 运行 sysprep.exe 时,可以添加一个 FirstLogonCommand 来缩小 hiberfile:

<unattend xmlns="urn:schemas-microsoft-com:unattend">
    <settings pass="oobeSystem">
        <component name="Microsoft-Windows-Shell-Setup">
            <FirstLogonCommands>
                <SynchronousCommand wcm:action="add">
                    <CommandLine>powercfg /h /type reduced</CommandLine>
                    <Description>Reduce hiberfile size</Description>
                    <Order>1</Order>
                    <RequiresUserInput>false</RequiresUserInput>
                </SynchronousCommand>
            </FirstLogonCommands>
        </component>
    </settings>
</unattend>

关闭 Hiberfile

结合 unattend.xml 运行 sysprep.exe 时,可以添加一个 FirstLogonCommand 来关闭 hiberfile:

<unattend xmlns="urn:schemas-microsoft-com:unattend">
    <settings pass="oobeSystem">
        <component name="Microsoft-Windows-Shell-Setup">
            <FirstLogonCommands>
                <SynchronousCommand wcm:action="add">
                    <CommandLine>powercfg /h /type Off</CommandLine>
                    <Description>Reduce hiberfile size</Description>
                    <Order>1</Order>
                    <RequiresUserInput>false</RequiresUserInput>
                </SynchronousCommand>
            </FirstLogonCommands>
        </component>
    </settings>
</unattend>

使用包含这些设置的 unattend.xml 文件捕获映像。

经过优化的磁盘占用量

下表显示了在 2GB (x86) 和 4GB (x64) 电脑上使用精简 OS、单实例化以及缩小或关闭 Hiberfile 的情况下可节省的额外空间。

空间占用类型 Windows 10 家庭版 x86,2GB 内存 Windows 10 家庭版 x64,4GB 内存
基本占用空间 11.68GB(额外空间) 15.06GB(额外空间)
精简 OS,不使用单实例 8.85GB (>2.75GB) 11.3GB (>3.7GB)
精简 OS,使用单实例 7.66GB (>4GB) 10.09GB (>4.75GB)
关闭 Hiberfile,不使用精简 OS 10.87GB (>825MB) 13.48GB (>1.5GB)
缩小 Hiberfile,不使用精简 OS 11.27GB (>400MB) 14.15GB (>930MB)