应答文件 (unattend.xml)

应答文件(或无人参与文件)可用于在安装期间修改你的映像中的 Windows 设置。 还可以在映像中创建触发脚本的设置,在用户首次创建其帐户并选择默认语言后会运行这些脚本。

Windows 安装程序将会自动搜索某些位置的应答文件,或者,你可以在运行 Windows 安装程序 (setup.exe) 时通过使用 /unattend: 选项来指定无人参与文件。

Windows 设置概览

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

企业可以使用组策略控制其他设置。 有关详细信息,请参阅组策略

答案文件设置

你可指定要添加新设置的配置传送。 每个配置传送都表示一个可以配置设置的安装阶段:

  • 1 windowsPE:这些设置由 Windows 安装程序使用。 如果你正在修改现有映像,通常可以忽略这些设置。

  • 2 offlineServicing:这些设置应用于脱机映像,此时使用 Apply-Unattend 选项来通过 DISM 应用无人参与文件。 在将具有 DISM 的无人参与文件应用于脱机映像时,只处理此配置传送中的设置。

  • 4 specialize:大多数设置都应在此处添加。 这些设置可同时在审核模式和 OOBE 开始时触发。 如果你需要进行多个更新或测试设置,请再次一般化设备,然后将另一批设置添加到 Specialize 配置阶段中。

  • 6 auditUser:启动审核模式后立即运行。

    这是运行系统测试脚本的合适时间 - 我们将添加 Microsoft-Windows-Deployment\RunAsynchronousCommand 作为示例。 若要了解详细信息,请参阅将自定义脚本添加到 Windows 安装程序

  • 7 oobeSystem:请慎用。 这些设置的大多数在用户完成 OOBE 之后运行。 例外情况是 Microsoft-Windows-Deployment\Reseal\Mode = 审核设置,我们将使用它来绕过 OOBE 并启动 PC 进入审核模式。

    如果你的脚本依赖于知道用户在 OOBE 期间选择哪种语言,请将它添加到 oobeSystem 阶段。

  • 若要了解详细信息,请参阅 Windows 安装程序配置通行证

注意

如果用户使用内置恢复工具重置他们的 PC,这些设置可能会丢失。 若要了解如何在重置期间确保这些设置保留在设备上,请参阅示例脚本:通过恢复保留 Windows 设置

创建和修改答案文件

本部分逐步介绍如何使用 Windows 评估和部署工具包中提供的工具来创建和修改无人参与文件。 在为部署创建无人参与文件时,可以配置与以下所述不同的或附加的设置。

步骤 1:创建目录文件

  1. 启动 Windows 系统映像管理器

  2. 单击文件>选择 Windows 映像

  3. 选择 Windows 映像中,浏览并选择映像文件 (D:\install.wim)。 接下来,选择 Windows 版本,例如 Windows 10 专业版,然后单击确定。 单击以创建目录文件。 Windows SIM 根据映像文件创建该文件,并将其保存到映像文件所在的文件夹中。 这个过程可能需要几分钟。

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

    提示

    如果 Windows SIM 未创建目录文件,请尝试以下步骤:

    • 若要为 32 位或基于 Arm 的设备创建目录文件,请使用 32 位设备。
    • 确保 Windows 基本映像文件 (\Sources\Install.wim) 位于具有读写权限的文件夹中,如 USB 闪存驱动器或硬盘驱动器上

步骤 2:创建答案文件

  • 单击文件>新建答案文件

    新的答案文件将显示在答案文件窗格中。

    注意

    如果打开现有的应答文件,系统可能会提示你将该应答文件与映像关联。 单击 “是”

步骤 3:添加新的答案文件设置

  1. 添加 OEM 信息:

    1. 在“Windows 映像”窗格中,展开“组件”,右键单击“amd64_Microsoft-Windows-Shell-Setup_(版本)”,然后选择“将设置添加到传送 4 specialize”

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

    3. OEMInformation 属性窗格的设置部分中,选择:

      • 制造商=Fabrikam
      • 型号=Notebook Model 1
      • 徽标=C:\Fabrikam\Fabrikam.bmp
    4. 创建最大大小为 120x120 像素的 32 位彩色图形/徽标,并在本地电脑上将它另存为 D:\AnswerFiles\Fabrikam.bmp 文件。

      我们将在几个步骤中将徽标复制到 Windows 映像中。

  2. 将设备设置为自动启动到审核模式

    1. 在“Windows 映像”窗格中,展开“组件”,右键单击“amd64_Microsoft-Windows-Deployment_(版本)”,然后选择“将设置添加到传送 7 oobeSystem”

    2. 在“应答文件”窗格中,选择“Components\7 oobeSystem\amd64_Microsoft-Windows-Deployment_neutral\Reseal”

    3. Reseal 属性窗格的设置部分中,选择模式 = Audit

  3. 准备脚本以在审核模式开始后运行。

    1. 在“Windows 映像”窗格中,右键单击“amd64_ Microsoft-Windows-Deployment_(版本)”,然后选择“将设置添加到传送 6 auditUser”

    2. 在“应答文件”窗格中,展开“Components\6 auditUser\amd64_Microsoft-Windows-Deployment_neutral\RunAsynchronous”。 右键单击 RunAsynchronousCommand 属性,然后单击插入新 AsynchronousCommand

    3. AsynchronousCommand 属性窗格的设置部分中,添加以下值:

      • Path = C:\Fabrikam\SampleCommand.cmd
      • Description = Sample command to run a system diagnostic check.
      • Order = 1(确定命令运行的顺序,从 1 开始。)
  4. 添加注册表项。 在此示例中,我们将名为“ABCD”的 REG_SZ 键添加到值为 10HKLM\Software\Sample 中。 此命令将会调用 CMD /c REG ADD,就像要从命令提示符创建注册表项一样。

    为每个要添加的注册表项添加 RunAsynchronousCommands。 (右键单击 RunAsynchronousCommand 属性,然后单击插入新 AsynchronousCommand)。

    Path = CMD /c REG ADD HKEY_LOCAL_MACHINE\Software\Sample /v 10 /t REG_SZ ABCD
    Description = Adds a OEM registry key
    Order = 2
    RequiredUserInput = false
    

有关配置选项的完整列表,请参阅无人参与的 Windows 安装程序参考

步骤 4:保存答案文件

  • 保存该应答文件,例如:D:\AnswerFiles\BootToAudit-x64.xml

    注意

    Windows SIM 不允许将应答文件保存到装载的映像文件夹中。  

步骤 5:创建脚本

我们在步骤 3.3 中指定了要运行的脚本,现在,我们来创建该脚本。

  • 将以下示例脚本复制到记事本,并将它保存为 D:\AnswerFiles\SampleCommand.cmd

    @rem Scan the integrity of system files 
    @rem (Required after removing the base English language from an image)
    sfc.exe /scannow
    
    @rem Check to see if your drivers are digitally signed, and send output to a log file.
    md C:\Fabrikam
    C:\Windows\System32\dxdiag /t C:\Fabrikam\DxDiag-TestLogFiles.txt
    

将答案文件和脚本添加到映像

步骤 6:装载映像并添加该应答文件

  1. 使用 DISM 来装载 Windows 映像。 若要了解如何装载映像,请参阅使用 DISM 来装载和修改 Windows 映像

  2. 将该应答文件复制到映像中的 \Windows\Panther 文件夹中,然后将它命名为 unattend.xml。 Panther 文件夹是 Windows 在搜索是否有应答文件的文件夹之一。 如果不存在,则创建文件夹。 如果有现有的答案文件,请将其替换或使用 Windows 系统映像管理器编辑/合并设置(如有必要)。

    MkDir c:\mount\windows\Windows\Panther
    Copy D:\AnswerFiles\BootToAudit-x64.xml  C:\mount\windows\Windows\Panther\unattend.xml
    MkDir c:\mount\windows\Fabrikam
    Copy D:\AnswerFiles\Fabrikam.bmp    C:\mount\windows\Fabrikam\Fabrikam.bmp
    Copy D:\AnswerFiles\SampleCommand.cmd    C:\mount\windows\Fabrikam\SampleCommand.cmd
    
  3. 卸载该映像,提交更改。 例如:

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

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

    此过程可能需要数分钟。

应用映像时,Windows 将会处理你的无人参与文件,并且将会根据你在该无人参与中指定的内容来配置你的设置。