Windows 11 纯官方工具封装教程(零第三方工具)
核心原则:本教程所有操作只使用微软官方工具,不安装任何第三方封装/优化/驱动工具。
- DISM:Windows 内置
- Sysprep:Windows 内置
- Windows ADK:微软官方免费下载
- Windows SIM:ADK 自带(用于制作 unattend.xml)
- WinPE:ADK 自带(用于制作启动盘)
适用场景:批量部署、标准化系统镜像、企业环境
预计时间:4-8 小时(首次)
📋 目录
- 工具清单(全部官方)
- 第一阶段:准备环境与镜像
- 第二阶段:在虚拟机中配置系统
- 第三阶段:Sysprep 封装与镜像捕获
- 第四阶段:制作 unattend.xml 无人值守文件
- 第五阶段:部署到目标机器
- 计算机名 / 驱动 / 软件 / 目录清理 / 用户目录 的官方实现
- 注意事项与故障排除
工具清单
| 工具 | 来源 | 用途 |
|---|---|---|
| Windows 11 官方 ISO | 微软官网 | 源镜像 |
| Windows ADK for Win11 | 微软官网 | 部署工具包(DISM、Windows SIM、WinPE 等) |
| Windows PE 加载项(ADK 的一部分) | 同上 | 制作 WinPE 启动盘 |
| DISM 命令行 | Windows / ADK 内置 | 挂载、修改、捕获 WIM 镜像 |
| Sysprep | C:\Windows\System32\Sysprep\ |
系统通用化封装 |
| Windows SIM (WSIM) | ADK 安装目录 | 图形化生成 unattend.xml |
| 虚拟机(Hyper-V / VMware / VirtualBox) | 系统自带或已安装 | 配置封装环境 |
| PowerShell / CMD | Windows 内置 | 编写部署脚本 |
说明:Hyper-V 是 Win10/11 专业版/企业版自带的功能("启用或关闭 Windows 功能"中勾选),完全官方。如果已有 VMware/VirtualBox 也可,但那属于第三方软件——若要做到"零第三方",推荐用 Hyper-V。
第一阶段:准备环境与镜像
1.1 下载官方 ISO
- 访问 https://www.microsoft.com/zh-cn/software-download/windows11
- 选择"下载 Windows 11 磁盘映像 (ISO)"
- 版本选"Windows 11 (multi-edition ISO)",语言"简体中文"
- 下载得到
Windows11_Chinese(Simplified)_x64.iso(约 5-6 GB)
1.2 安装 Windows ADK + WinPE 加载项
- 打开 ADK 下载页,下载并运行
adksetup.exe - 安装时勾选:
- ✅ 部署工具(Deployment Tools)
- ✅ 通用扫描/部署(Imaging And Configuration Designer,可选)
- ✅ 用户状态迁移工具(USMT,可选)
- 再下载运行
adkwinpesetup.exe(WinPE 加载项),默认安装即可
安装完成后,开始菜单会出现"部署和映像工具环境"(Deployment and Imaging Tools Environment),这是以管理员身份运行 DISM 的入口。
1.3 提取 ISO 内容
- 右键 ISO → 装载(或双击)
- 把虚拟光驱里所有文件复制到本地目录,例如
D:\Win11Src\ - 卸载 ISO
必须复制到本地再改,不能直接改 ISO 内文件。
1.4 使用 DISM 优化镜像(完全官方命令行)
以管理员身份打开 "部署和映像工具环境",执行:
:: 1. 创建挂载目录
mkdir D:\Mount
:: 2. 查看 ISO 里有哪些版本(index)
dism /get-wiminfo /wimfile:D:\Win11Src\sources\install.wim
:: 3. 挂载你需要的版本(假设 index:1 是专业版)
dism /mount-wim /wimfile:D:\Win11Src\sources\install.wim /index:1 /mountdir:D:\Mount
:: 4. 移除预装 UWP 应用(按需,示例移除 Xbox)
dism /image:D:\Mount /remove-provisioned-appxpackage /packagename:Microsoft.XboxApp_48.0.2301.0_neutral_~_8wekyb3d8bbwe
:: 5. 启用 .NET Framework 3.5
dism /image:D:\Mount /enable-feature /featurename:NetFx3 /all /limitaccess /source:D:\Win11Src\sources\sxs
:: 6. 集成驱动(可选,建议只集成网卡)
dism /image:D:\Mount /add-driver /driver:D:\Drivers\Net /recurse
:: 7. 集成累积更新(可选,放 .msu 文件)
dism /image:D:\Mount /add-package /packagepath:D:\Updates
:: 8. 保存并卸载
dism /unmount-wim /mountdir:D:\Mount /commit
常用 DISM 镜像命令速查:
| 操作 | 命令 |
|---|---|
| 查看版本列表 | dism /get-wiminfo /wimfile:install.wim |
| 挂载 | dism /mount-wim /wimfile:install.wim /index:1 /mountdir:D:\Mount |
| 卸载并保存 | dism /unmount-wim /mountdir:D:\Mount /commit |
| 卸载不保存 | dism /unmount-wim /mountdir:D:\Mount /discard |
| 列出已装应用 | dism /image:D:\Mount /get-provisionedappxpackages |
| 移除应用 | dism /image:D:\Mount /remove-provisioned-appxpackage /packagename:XXX |
| 启用功能 | dism /image:D:\Mount /enable-feature /featurename:NetFx3 |
| 添加驱动 | dism /image:D:\Mount /add-driver /driver:D:\Drivers /recurse |
第二阶段:在虚拟机中配置系统
2.1 创建虚拟机并进入审核模式
以 Hyper-V 为例(零第三方):
- 控制面板 → 程序 → 启用或关闭 Windows 功能 → 勾选"Hyper-V" → 重启
- 打开 Hyper-V 管理器 → 新建 → 虚拟机
- 内存 4096 MB、硬盘 60 GB(动态)、网络选"Default Switch"
- 安装选项选"从可启动 CD/DVD 映像安装操作系统",指向
D:\Win11Src\ - 启动虚拟机,在区域设置(OOBE)界面按
Ctrl + Shift + F3 - 系统自动重启进入审核模式(Audit Mode),桌面出现"系统准备工具"窗口,点"取消"
审核模式让你能在不创建用户账户的情况下配置系统,是官方推荐的封装前配置方式。
2.2 在审核模式中安装软件与配置
- 安装你需要的软件(Office、浏览器、压缩工具等)。这些软件会保留在封装后的镜像里。
- 系统设置:电源计划(高性能)、关闭休眠
powercfg -h off、默认应用、隐私设置等。 - 把需要放到镜像里的驱动、脚本也放进去。
2.3 准备部署后自动执行脚本(官方机制)
Windows 在部署完成后、OOBE 之前会自动执行:
C:\Windows\Setup\Scripts\SetupComplete.cmd
创建该文件(用记事本,注意保存为 ANSI/GBK 编码,否则中文乱码):
:: C:\Windows\Setup\Scripts\SetupComplete.cmd
@echo off
echo 部署后配置开始...
:: 1. 安装本地驱动包(如有)
if exist D:\Drivers\Install.bat call D:\Drivers\Install.bat
:: 2. 静默安装软件(如有,示例)
if exist D:\Software\Install.bat call D:\Software\Install.bat
:: 3. 删除不需要的目录
rmdir /S /Q "C:\Program Files\UnwantedApp" 2>nul
del /F /Q "C:\Windows\Temp\*.*" 2>nul
:: 4. 让系统自动扫描并安装驱动
pnputil /scan-devices
echo 部署后配置完成!
这个文件就是"部署中执行驱动、安装软件、删除目录"的官方等价实现,不需要任何第三方工具。
2.4 封装前清理(官方命令)
以管理员运行 PowerShell:
# 清理 WinSxS
Dism.exe /Online /Cleanup-Image /StartComponentCleanup
# 清理临时文件
Remove-Item -Path "C:\Windows\Temp\*" -Recurse -Force -ErrorAction SilentlyContinue
Remove-Item -Path "$env:LOCALAPPDATA\Temp\*" -Recurse -Force -ErrorAction SilentlyContinue
# 清空事件日志
wevtutil el | ForEach-Object { wevtutil cl $_ }
第三阶段:Sysprep 封装与镜像捕获
3.1 运行 Sysprep 通用化
在虚拟机中,管理员 CMD 运行:
C:\Windows\System32\Sysprep\sysprep.exe /generalize /oobe /shutdown /unattend:C:\unattend.xml
/generalize:移除硬件相关信息(SID、驱动等)/oobe:下次启动进入开箱体验/shutdown:封装完关机(不是重启)/unattend:C:\unattend.xml:可省略,若省略则用空应答
建议封装前给虚拟机拍快照,万一失败可回滚重来。Sysprep 失败的系统不能再次封装。
3.2 制作 WinPE 启动盘(官方)
在主机"部署和映像工具环境"中:
:: 1. 生成 WinPE 工程目录
copype amd64 D:\WinPE
:: 2. 把封装后需要的文件放进 WinPE(可选)
copy D:\Win11Src\sources\install.wim D:\WinPE\media\
copy D:\unattend.xml D:\WinPE\media\
copy D:\SetupComplete.cmd D:\WinPE\media\
:: 3. 生成 WinPE ISO
MakeWinPEMedia /ISO D:\WinPE D:\WinPE.iso
把这个 D:\WinPE.iso 用来启动虚拟机或目标机(Hyper-V 直接挂载 ISO 即可,实体机可用 Rufus 烧 U 盘——若严格要求零第三方,可用 MakeWinPEMedia /UFD D:\WinPE F: 直接写 U 盘,F: 为 U 盘盘符)。
3.3 捕获封装好的镜像
- 用 WinPE ISO 启动已封装关机的虚拟机
- 进入 WinPE 命令行:
:: 查看分区盘符
diskpart
list volume
exit
:: 捕获系统盘(假设系统盘是 C:,镜像输出到 D: 或网络/外置盘)
dism /capture-image /imagefile:D:\Win11_Custom.wim /capturedir:C:\ /name:"Win11 Custom" /compress:maximum /verify
- 等待完成,得到
Win11_Custom.wim(这就是你的封装镜像)
如果目标机硬盘有空间,也可以直接
copy出 wim;或用net use映射到网络共享保存。
第四阶段:制作 unattend.xml 无人值守文件
unattend.xml 是微软官方无人值守配置文件,可控制分区、计算机名、用户目录位置、OOBE 跳过等——完全替代 Easy Sysprep 的各项设置。
4.1 用 Windows SIM 生成(图形化,官方)
- 开始菜单 → Windows Kits → Windows System Image Manager
- 右键"选择 Windows 映像",选
D:\Win11Src\sources\install.wim - 右键"创建或打开应答文件" → 新建
- 在左下"组件"中,把需要的设置拖到右侧对应 pass(配置阶段):
windowsPE:DiskConfiguration(分区)、ImageInstall(安装到哪)specialize:ComputerName(计算机名)、ProductKey、TimeZoneoobeSystem:OOBE(跳过各页面)、UserAccounts(建账户)、FolderLocations(用户目录改盘)
- 保存为
unattend.xml
Windows SIM 会自动校验配置合法性,比手写 XML 安全。
4.2 最小可用模板(手写版)
下面是一份可直接用的 unattend.xml(自动分区 + 跳过 OOBE + 固定管理员账户 + 计算机名随机后缀)。保存为 UTF-8 或 ANSI 均可,但中文需 GBK/ANSI。
<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
<settings pass="windowsPE">
<component name="Microsoft-Windows-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State">
<DiskConfiguration>
<Disk wcm:action="add">
<DiskID>0</DiskID>
<WillWipeDisk>true</WillWipeDisk>
<CreatePartitions>
<CreatePartition wcm:action="add"><Order>1</Order><Type>EFI</Type><Size>100</Size></CreatePartition>
<CreatePartition wcm:action="add"><Order>2</Order><Type>MSR</Type><Size>16</Size></CreatePartition>
<CreatePartition wcm:action="add"><Order>3</Order><Type>Primary</Type><Extend>true</Extend></CreatePartition>
</CreatePartitions>
<ModifyPartitions>
<ModifyPartition wcm:action="add"><Order>1</Order><PartitionID>1</PartitionID><Format>FAT32</Format><Label>System</Label></ModifyPartition>
<ModifyPartition wcm:action="add"><Order>2</Order><PartitionID>3</PartitionID><Format>NTFS</Format><Label>Windows</Label></ModifyPartition>
</ModifyPartitions>
</Disk>
</DiskConfiguration>
<ImageInstall>
<OSImage>
<InstallTo><DiskID>0</DiskID><PartitionID>3</PartitionID></InstallTo>
</OSImage>
</ImageInstall>
</component>
</settings>
<settings pass="specialize">
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State">
<ComputerName>PC-%RANDOM%</ComputerName>
<TimeZone>China Standard Time</TimeZone>
</component>
</settings>
<settings pass="oobeSystem">
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State">
<OOBE>
<HideEULAPage>true</HideEULAPage>
<HideLocalAccountScreen>true</HideLocalAccountScreen>
<HideOnlineAccountScreens>true</HideOnlineAccountScreens>
<HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
<ProtectYourPC>3</ProtectYourPC>
</OOBE>
<UserAccounts>
<LocalAccounts>
<LocalAccount wcm:action="add">
<Name>Admin</Name>
<Group>Administrators</Group>
<Password><Value></Value><PlainText>true</PlainText></Password>
</LocalAccount>
</LocalAccounts>
</UserAccounts>
</component>
</settings>
</unattend>
把用户目录改到其他盘(在 oobeSystem 的 Microsoft-Windows-Shell-Setup 下加):
<FolderLocations>
<ProfilesDirectory>D:\Users</ProfilesDirectory>
</FolderLocations>
⚠️
FolderLocations必须在 OOBE 阶段之前生效,写在oobeSystempass 中即可。
第五阶段:部署到目标机器
5.1 WinPE + DISM 手动部署(最通用)
准备一个 U 盘/ISO,里面放:
Win11_Custom.wimunattend.xml(放到C:\Windows\Panther\)SetupComplete.cmd(放到C:\Windows\Setup\Scripts\)
从 WinPE 启动目标机,运行:
:: 1. 分区(可省略,若用 unattend 自动分区则跳过)
diskpart /s Z:\Partition.txt
:: 2. 应用封装镜像
dism /apply-image /imagefile:Z:\Win11_Custom.wim /index:1 /applydir:C:\
:: 3. 放入无人值守文件
mkdir C:\Windows\Panther
copy Z:\unattend.xml C:\Windows\Panther\unattend.xml
:: 4. 放入部署后脚本
mkdir C:\Windows\Setup\Scripts
copy Z:\SetupComplete.cmd C:\Windows\Setup\Scripts\SetupComplete.cmd
:: 5. 写入引导
bcdboot C:\Windows
:: 6. 重启
wpeutil reboot
Partition.txt(供 diskpart 自动分区):
select disk 0
clean
convert gpt
create partition efi size=100
format quick fs=fat32 label="System"
assign letter=S
create partition msr size=16
create partition primary
format quick fs=ntfs label="Windows"
assign letter=C
exit
5.2 生成可启动安装 ISO(封装镜像替换原版)
如果想做成"插 U 盘自动装"的 ISO:
- 复制
D:\Win11Src\为D:\Win11ISO\ - 用 DISM 把你的
Win11_Custom.wim替换进去(或直接改名替换sources\install.wim) - 用 ADK 的
oscdimg重新打包:
oscdimg -m -o -u2 -udfver102 -bootdata:2#p0,e,bD:\Win11ISO\boot\etfsboot.com#pEF,e,bD:\Win11ISO\efi\microsoft\boot\efisys.bin D:\Win11ISO D:\Win11_Custom.iso
- 用 Rufus(或
MakeWinPEMedia思路)烧录启动盘
若严格零第三方,可用
MakeWinPEMedia或diskpart的clean/format配合手动复制,但烧 ISO 这一步 ADK 的oscdimg已足够,无需第三方。
5.3 大规模网络部署(官方:WDS / MDT)
- WDS(Windows Deployment Services):Windows Server 角色,PXE 网络启动安装
- MDT(Microsoft Deployment Toolkit):免费,任务序列可包含驱动、软件、脚本
- 两者均为微软官方,适合 100+ 台批量
Easy Sysprep 功能官方替代一览
| Easy Sysprep 功能 | 纯官方实现 |
|---|---|
| 修改部署后计算机名 | unattend.xml → specialize 阶段 <ComputerName>,支持 PC-%RANDOM%、MAC 派生等;或用 SetupComplete.cmd 调 wmic/Rename-Computer |
| 部署中执行万能驱动 | DISM /add-driver 预集成到镜像;或 SetupComplete.cmd 调 pnputil /scan-devices / 本地驱动包 |
| 部署中安装软件 | 审核模式里预装(进镜像);或 SetupComplete.cmd / FirstLogonCommands 静默安装 |
| 删除指定目录 | SetupComplete.cmd 里 rmdir/del;封装前用 PowerShell 清理 |
| 用户目录改到其他盘 | unattend.xml → oobeSystem 的 <FolderLocations><ProfilesDirectory> |
| 自动分区 | unattend.xml → windowsPE 的 DiskConfiguration;或 diskpart /s 脚本 |
| 跳过 OOBE | unattend.xml → oobeSystem 的 <OOBE> 各项 Hide |
| 创建用户账户 | unattend.xml → oobeSystem 的 <UserAccounts> |
注意事项与故障排除
注意事项
- Sysprep 限制:封装后的系统不能再封装;建议封装前快照。
- 编码问题:
SetupComplete.cmd含中文时务必保存为 ANSI (GBK),否则中文路径/提示乱码。 - 激活:Sysprep 会清除硬件绑定激活,部署后需重新激活(可用 KMS,
slmgr /skms ...; slmgr /ato)。 - 镜像体积:封装前清理 +
/compress:maximum可显著减小 wim。 - Win11 驱动:多数硬件 Win11 自带驱动,建议只预集成网卡,其余让系统/Windows Update 自动装。
- 测试:务必先在一台机器验证 unattend.xml 与 SetupComplete.cmd 再大规模部署。
常见故障
| 现象 | 原因 | 解决 |
|---|---|---|
| Sysprep 报错无法验证 | 装了不支持 Sysprep 的 Store 应用 | 移除所有预装 Appx 包后重试 |
| 部署后无限重启 | unattend.xml 配置错误 | 用 Windows SIM 校验;先移除 unattend 手动装 |
| 驱动装不上 | 驱动未签名/不兼容 | bcdedit /set testsigning on;或 DISM /forceunsigned |
| 计算机名冲突 | 固定了同名 | 改用 %RANDOM% 或 * |
| 用户目录未改盘 | FolderLocations 放错 pass | 必须放在 oobeSystem |
总结
整套流程只用:
- DISM(挂载/修改/捕获镜像)
- Sysprep(通用化封装)
- Windows ADK(Windows SIM 做 unattend、WinPE 做启动盘、oscdimg 打包 ISO)
- Windows 内置(PowerShell、diskpart、bcdboot、pnputil)
完全不依赖任何第三方封装/优化/驱动工具,零广告、可审计、适合企业环境。
教程版本 1.0 · 2026-07-21 · 纯官方工具路线
发表回复