Windows 安装程序自动化概述

可以通过多种不同的方法将 Windows 安装自动化。 可以结合使用或单独使用下面介绍的方法,来实现部署所需的自动化程度。

Setupconfig.ini

创建一个 Setupconfig.ini 文件

Setupconfig.ini 文件:

  • 以用作标头的 [SetupConfig] 开头
  • 包含一个或多个参数,或者参数和值对
    • 每个参数或者参数和值对是独行提供的
    • 参数和值对用 = 分隔(不带空格)。

请参阅“Windows 安装程序命令行选项”,以查看可在 Setupconfig.ini 文件中使用的不同参数。

示例 Setupconfig.ini

下面是一个示例 setupconfig.ini 文件:

[SetupConfig]
NoReboot
ShowOobe=None
Telemetry=Enable

此命令等效于从命令行运行 Setup /NoReboot /ShowOobe None /Telemetry Enable

请参阅下一部分了解如何使用 Setupconfig.ini 文件

将 Setupconfig.ini 与 Windows 安装程序配合使用

使用媒体/ISO 文件

如果从媒体或 ISO 文件运行 Windows 安装程序,则在运行 setup.exe 时必须在命令行中包含 setupconfig 文件的位置 (/ConfigFile <path>)。 例如:

Setup.exe /ConfigFile <path to Setupconfig.ini>

如果在命令行中包含某个参数并在 setupconfig 文件中包含同一参数,则 setupconfig 文件中的参数和值优先。

使用 Windows 更新

如果更新是通过 Windows 更新提供的,Windows 安装程序将在默认位置搜索 setupconfig 文件。 可以包含 %systemdrive%\Users\Default\AppData\Local\Microsoft\Windows\WSUS\SetupConfig.ini 路径下的 setupconfig 文件

安装 Windows 时使用应答文件

可以使用答案文件将 Windows 安装自动化:

Servicing with Setup: Start with a new device with a USB that contains Windows Setup, your Windows image file, and an unattend.xml customization file. Apply it to new devices.

使用 USB 闪存驱动器

  1. 使用示例应答文件,或使用 Windows 系统映像管理器 (Windows SIM) 创建自己的应答文件。

  2. 以文件名 Autounattend.xml 将该文件保存到 USB 闪存驱动器的根目录中。

  3. 在新电脑上插入 Windows 产品 DVD 和 USB 闪存驱动器,然后启动电脑。 如果未选择其他应答文件,Windows 安装程序将搜索此文件。

选择应答文件

  • 可以在安装期间启动至 Windows 预安装环境并结合 /unattend:<filename> 选项运行 Windows 安装程序,以选择特定的应答文件。 有关详细信息,请参阅 Windows 安装程序命令行选项

有关用于自动化安装的示例应答文件和设置列表,请参阅将 Windows 安装程序自动化

修改现有的安装

由于在安装过程中需要重启,因此应答文件的副本将缓存到 Windows 安装中的 %WINDIR%\Panther 目录。 可以修改此文件以执行以下任何操作:

  • 在不启动映像的情况下更新系统和控制面板设置。

  • 通过准备将电脑启动至审核模式来更新映像。 请参阅将 Windows 启动进入审核模式或 OOBE

  • 更新驱动程序或包的安装顺序。 (具有依赖项的包可能需要按特定的顺序安装。)

替换脱机映像中的应答文件

  1. 在 Windows 系统映像管理器 (Windows SIM) 中创建自定义应答文件。

  2. 打开权限提升的命令提示符。

  3. 装载 Windows 映像。

    Dism /Mount-Image /ImageFile:"C:\images\CustomImage.wim" /Index:1 /MountDir:C:\mount
    
  4. 修改或替换已装载映像中的文件 \Windows\Panther\unattend.xml。

    Copy CustomAnswerFile.xml C:\mount\Windows\Panther\unattend.xml
    

    注意

    映像中的应答文件可能包含尚未处理的设置。 如果你希望处理这些设置,请编辑现有文件而不要替换它。

  5. 卸载映像并提交更改

    Dism /Unmount-Image /MountDir:C:\mount /Commit
    
  6. 在不指定应答文件的情况下将映像部署到新电脑以测试映像。 当 Windows 安装程序运行时,它会查找并使用此应答文件。

模糊应答文件搜索顺序

Windows 安装程序在每个配置阶段(包括初始安装以及在应用并启动映像之后)开始时会搜索应答文件。 如果找到了应答文件,并且其中包含给定配置阶段的设置,则安装程序会处理这些设置。

Windows 安装程序根据搜索顺序识别并记录所有可用的应答文件。 使用优先级最高的应答文件。 将会对应答文件进行验证,然后将其缓存到计算机中。 在 windowsPEofflineServicing 配置阶段,有效的应答文件将缓存到 $Windows.~BT\Sources\Panther 目录。 在将 Windows 安装解压缩到硬盘之后,应答文件会缓存到 %WINDIR%\panther。

下表显示了模糊应答文件搜索顺序。

搜索顺序 位置 说明

1

注册表

HKEY_LOCAL_MACHINE\System\Setup\UnattendFile

在注册表中指定指向应答文件的指针。 应答文件并非必须名为 Unattend.xml。

2

%WINDIR%\Panther\Unattend

应答文件的名称必须为 Unattend.xml 或 Autounattend.xml。

注意

Windows 安装程序仅在下层安装中搜索此目录。 如果 Windows 安装程序从 Windows PE 启动,则不会搜索 %WINDIR%\Panther\Unattend 目录。

3

%WINDIR%\Panther

Windows 安装程序将应答文件缓存到此位置,以便在后续安装阶段使用。 例如,当计算机重启时,安装程序可以继续应用应答文件中的设置。 如果使用 Windows 安装程序或 Sysprep 显式指定应答文件,则显式指定的应答文件将覆盖此目录中缓存的应答文件。

重要说明

请不要使用、修改或覆盖此目录中的应答文件。 在安装期间,Windows 安装程序将会注释此目录中的应答文件。 此应答文件不能在 Windows SIM 或任何其他 Windows 安装中重复使用。

4

按照驱动器号顺序排列的可移动读/写介质,位于驱动器根目录下。

按照驱动器号顺序排列的可移动读/写介质,位于驱动器根目录下。

应答文件的名称必须是 Autounattend.xml,并且应答文件必须位于驱动器的根目录中。

5

按照驱动器号顺序排列的可移动只读介质,位于驱动器根目录下。

按照驱动器号顺序排列的可移动只读介质,位于驱动器根目录下。

应答文件的名称必须是 Autounattend.xml,并且必须位于驱动器的根目录中。

6

windowsPEofflineServicing 配置阶段:

  • Windows 分发中的 \Sources 目录

所有其他阶段:

  • %WINDIR%\System32\Sysprep

windowsPEofflineServicing 配置阶段,应答文件的名称必须是 Autounattend.xml。

对于所有其他配置阶段,文件名必须为 Unattend.xml。

7

%SYSTEMDRIVE%

应答文件名必须是 Unattend.xml 或 Autounattend.xml

8

从中运行 Windows 安装程序 (setup.exe) 的驱动器,位于驱动器的根目录中。

应答文件的名称必须是 Unattend.xml 或 Autounattend.xml,并且必须位于 Windows 安装程序文件夹路径的根目录中。

应答文件中的敏感数据

安装程序将在每个配置阶段结束时删除缓存的应答文件中的敏感数据。

由于在 Windows 安装过程中会将应答文件缓存到计算机中,因此在数次重新启动之间应答文件将保留在计算机中。 在将计算机交付给客户之前,必须先删除 %WINDIR%\panther 目录中缓存的应答文件。 如果在应答文件中包含域密码、产品密钥或其他敏感数据,可能会造成安全问题。

如果在最终用户启动计算机时,你打算运行的 oobeSystem 配置阶段中存在未处理的设置,请考虑删除应答文件中已处理的节。 运行 sysprep /oobe 命令时,可以采取的一种做法可能是单独使用一个仅包含 oobeSystem 配置阶段中的设置的应答文件。

如果应答文件所嵌入位置的优先级高于缓存的应答文件,并且该嵌入的应答文件与模糊搜索条件相匹配,则其将在每个后续配置阶段开始时覆盖缓存的应答文件。

例如,如果应答文件嵌在 %WINDIR%\Panther\Unattend\Unattend.xml 中,则嵌入的应答文件将在每个配置阶段开始时替换缓存的应答文件。 例如,如果嵌入的应答文件指定了 specializeoobeSystem 这两个配置阶段,则在 specialize 配置阶段将发现该嵌入的应答文件,并且将清除缓存的数据、已处理的数据以及敏感数据。 在 oobeSystem 配置阶段,将再次发现该嵌入的应答文件并再次将其缓存。 因此无法清除 specialize 配置阶段的敏感数据。 将不再清除以前处理过的配置阶段的敏感数据。 除非必须替代缓存的应答文件,否则请将应答文件嵌入到优先级较低的位置。

由于在 Windows 安装过程中会将应答文件缓存到计算机中,因此在数次重新启动之间应答文件将保留在计算机中。 在将计算机交付给客户之前,必须先删除 %WINDIR%\panther 目录中缓存的应答文件。 如果在应答文件中包含域密码、产品密钥或其他敏感数据,可能会造成安全问题。 但是,如果在最终用户启动计算机时,你打算运行的 oobeSystem 配置阶段中存在未处理的设置,请考虑删除应答文件中已处理的节。 运行 sysprep /oobe 命令时,可以采取的一种做法可能是单独使用一个仅包含 oobeSystem 配置阶段中的设置的应答文件。

可以将命令添加到 Setupcomplete.cmd 命令脚本,该脚本可删除计算机上所有缓存的或嵌入的应答文件。 有关详细信息,请参阅将自定义脚本添加到 Windows 安装程序

Windows 安装程序为应答文件中的配置阶段添加注释

处理完某个配置阶段后,Windows 安装程序将对缓存的应答文件添加注释,以表明该阶段已处理。 如果再次运行该配置阶段,而在此期间并未替换或更新缓存的应答文件,则不会再次处理应答文件设置。 相反,Windows 安装程序将搜索优先级较低(优先级低于缓存的 Unattend.xml 文件)位置的模糊 Unattend.xml 文件。

例如,可以在 specialize 配置阶段使用包含 Microsoft-Windows-Deployment/RunSynchronous 命令的应答文件来安装 Windows。 在安装过程中,将运行 specialize 配置阶段并执行 RunSynchronous 命令。 安装后,结合 /generalize 选项运行 sysprep 命令。 如果优先级高于缓存的应答文件的位置中不存在应答文件,或者未将应答文件明确传递到 Sysprep 工具,则安装程序将在下次启动计算机时运行 specialize 配置阶段。 由于缓存的应答文件包含一个注释(表示已应用该配置阶段的设置),因此将不执行 RunSynchronous 命令。

隐式应答文件搜索示例

以下示例帮助描述模糊应答文件搜索的行为。

Windows 安装程序会自动发现名为 Autounattend.xml 的应答文件

  1. 创建名为 Autounattend.xml 的应答文件,其中包含 windowsPE 配置阶段中的设置。

  2. 将 Autounattend.xml 复制到可移动媒体设备。

  3. 启动 Windows 安装媒体。

  4. 在 Windows 启动时插入可移动媒体设备。 此示例假设为可移动媒体分配了驱动器号 D:\

    Windows 安装程序将会启动并自动将 Autounattend.xml 识别为有效的应答文件。 由于使用有效文件名 (Autounattend.xml) 的应答文件位于有效搜索路径之一(D 的根目录),且包括当前配置阶段 (windowsPE) 的有效设置,因此将使用该应答文件。

    会将应答文件缓存到计算机中。 如果在之后的阶段中未发现其他应答文件,则整个 Windows 安装程序过程中都将使用该缓存的文件。

应答文件是在预定义的搜索路径中按优先顺序发现的

  1. 使用前面方案中的步骤通过应答文件安装 Windows。 用于安装 Windows 的应答文件将缓存到系统中的 %WINDIR%\Panther directory

  2. 将 Unattend.xml 文件复制到 %WINDIR%\System32\Sysprep 目录。

    此应答文件包含 generalize 配置阶段中的设置。

  3. 结合 /generalize 选项运行 sysprep 命令以创建参考映像。

    由于 %WINDIR%\System32\Sysprep 目录位于隐式搜索路径中,因此可以找到复制到此目录的应答文件。 但是,用于安装 Windows 的应答文件仍缓存在计算机中并包含 generalize 配置阶段的设置。 此缓存的应答文件的优先级要高于复制到 Sysprep 目录中的文件的优先级。 会使用缓存的应答文件。

若要使用新的应答文件,可将其复制到优先级高于缓存的应答文件的目录中,或使用 /unattend 选项指定应答文件。 例如:

sysprep /generalize /unattend:C:\MyAnswerFile.xml

应答文件必须包含有效的配置阶段

  1. 将 Unattend.xml 文件复制到可移动媒体设备。

    Unattend.xml 文件仅包含 auditSystemauditUser 配置阶段的设置。

  2. 在已安装的 Windows 操作系统上,运行 sysprep /generalize /oobe 命令。

    尽管已在某个隐式搜索路径中提供了应答文件,但由于 Unattend.xml 文件不包含 generalize 配置阶段的有效阶段,因此仍会忽略该文件。

其他资源

有关应答文件和配置阶段的详细信息,请参阅以下主题:

Windows 安装程序方案和最佳做法

Windows 安装程序安装过程

自动化 Windows 安装

审核模式概述

Windows Setup Configuration Passes

Windows 安装程序支持的平台和跨平台部署