Windows 无人值守应答文件(unattend.xml
)主要由多个阶段(passes)组成,每个阶段代表操作系统安装过程中不同的时间点或事件。详细列出如下:
1. WindowsPE 阶段 (windowsPE
)
- 阶段概述:此阶段是在安装程序启动后的早期阶段执行的,通常是在 Windows Preinstallation Environment (Windows PE) 环境下。主要用于准备硬盘分区、选择映像、配置系统安装选项等。
- 常见用途:
- 配置磁盘分区。
- 安装操作系统映像。
- 设置启动 Windows 安装进程。
- 设定语言和区域设置。
示例配置:
<settings pass="windowsPE">
<component name="Microsoft-Windows-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
<DiskConfiguration>
<Disk wcm:action="add">
<CreatePartitions>
<CreatePartition wcm:action="add">
<Order>1</Order>
<Type>Primary</Type>
<Size>100000</Size> <!-- MB -->
</CreatePartition>
</CreatePartitions>
</Disk>
</DiskConfiguration>
<ImageInstall>
<OSImage>
<InstallFrom>
<Path>X:\Sources\install.wim</Path>
</InstallFrom>
<InstallTo>
<DiskID>0</DiskID>
<PartitionID>1</PartitionID>
</InstallTo>
</OSImage>
</ImageInstall>
</component>
</settings>
2. OfflineServicing 阶段 (offlineServicing
)
- 阶段概述:此阶段是在操作系统尚未启动时、系统仍处于离线状态下执行的。主要用于在安装过程的中途进行系统的更新和补丁安装。
- 常见用途:
- 集成操作系统补丁、更新或驱动程序。
- 集成语言包和功能。
示例配置:
<settings pass="offlineServicing">
<component name="Microsoft-Windows-PnpCustomizationsNonWinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
<DriverPaths>
<PathAndCredentials wcm:action="add">
<Path>E:\Drivers</Path>
</PathAndCredentials>
</DriverPaths>
</component>
</settings>
3. Generalize 阶段 (generalize
)
- 阶段概述:此阶段用于从计算机中删除特定于硬件或用户的信息,以便操作系统能够在不同的硬件上通用部署。
Sysprep
工具通常用于此阶段。 - 常见用途:
- 清除安全 ID (SID) 信息。
- 删除硬件特定的驱动程序。
示例配置:
<settings pass="generalize">
<component name="Microsoft-Windows-Security-SPP-UX" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
<SkipRearm>1</SkipRearm>
</component>
</settings>
4. Specialize 阶段 (specialize
)
- 阶段概述:此阶段在第一次启动时执行,主要用于设置操作系统的特定配置,例如计算机名、网络设置、时区等。
- 常见用途:
- 配置计算机名、网络设置和时区。
- 激活 Windows。
示例配置:
<settings pass="specialize">
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
<ComputerName>MyComputer</ComputerName>
<TimeZone>China Standard Time</TimeZone>
</component>
</settings>
5. AuditSystem 阶段 (auditSystem
)
- 阶段概述:此阶段用于审核系统启动时的配置,用于企业或制造商自定义系统设置。此阶段通常在
Sysprep
工具设置系统进入审核模式时执行。 - 常见用途:
- 应用系统特定设置(驱动程序、应用程序、注册表设置等)。
示例配置:
<settings pass="auditSystem">
<component name="Microsoft-Windows-Deployment" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
<Reseal>
<Mode>Audit</Mode>
</Reseal>
</component>
</settings>
6. AuditUser 阶段 (auditUser
)
- 阶段概述:此阶段在
auditSystem
阶段之后执行,用于用户登录前安装软件或进行配置。通常用于在系统交付给最终用户之前执行软件安装或自定义操作。 - 常见用途:
- 安装应用程序。
- 配置系统设置或用户环境。
示例配置:
<settings pass="auditUser">
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
<FirstLogonCommands>
<SynchronousCommand wcm:action="add">
<CommandLine>cmd /c start /wait D:\Install\setup.exe /silent</CommandLine>
<Order>1</Order>
</SynchronousCommand>
</FirstLogonCommands>
</component>
</settings>
7. OobeSystem 阶段 (oobeSystem
)
- 阶段概述:此阶段是在系统首次启动时的 “欢迎使用 Windows” (Out-Of-Box Experience,OOBE)过程中执行,主要用于配置最终用户的设置,如本地化设置、用户账户等。
- 常见用途:
- 配置用户账户。
- 配置语言和区域设置。
- 设置系统自动登录。
示例配置:
<settings pass="oobeSystem">
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
<OOBE>
<HideEULAPage>true</HideEULAPage>
<NetworkLocation>Home</NetworkLocation>
<ProtectYourPC>3</ProtectYourPC>
</OOBE>
<UserAccounts>
<AdministratorPassword>
<PlainText>true</PlainText>
<Value>AdminPassword</Value>
</AdministratorPassword>
</UserAccounts>
</component>
</settings>
阶段总结:
windowsPE
:系统安装前的设置和配置,如分区、安装路径等。offlineServicing
:系统离线时安装补丁、驱动程序等。generalize
:清除系统特定数据,如 SID,通用化部署。specialize
:首次启动时的特定系统配置,如计算机名和时区。auditSystem
:审核模式的系统设置,通常用于企业自定义。auditUser
:审核模式的用户设置,通常用于安装软件。oobeSystem
:首次启动体验中的用户配置,如账户和语言设置。
每个阶段负责不同的系统设置,使用适当的阶段可以确保部署过程的流畅和自动化。