Rufus unattend.xml 完全指南:一个应答文件如何搞定 Windows 无人值守安装
Rufus unattend.xml 完全指南一个应答文件如何搞定 Windows 无人值守安装【免费下载链接】rufusThe Reliable USB Formatting Utility项目地址: https://gitcode.com/GitHub_Trending/ru/rufus给没有 TPM 2.0 的机器装 Windows 11setup.exe 会直接拒绝就算过了硬件检测OOBE 又会逼你连 WiFi、登微软账户。Rufus可靠的 USB 格式化工具的办法是在写入 U 盘前动态生成一份 unattend.xml 塞进安装介质让上述环节全部自动放行。它替你处理的是绕过 TPM / SecureBoot / 最低内存检查跳过微软账户强制登录预建本地账户关闭数据收集等遥测项全自动分区、自动选盘的静默安装从勾选框到 XML四个安装 pass 如何被映射界面里 Windows User Experience 复选框的本质是一个位掩码定义在 src/rufus.h 中。默认掩码UNATTEND_DEFAULT_SELECTION_MASKsrc/rufus.h#L710就是 TPM 绕过、跳过在线账户、内部磁盘离线三项的并集所以默认勾选的三个选项与之一一对应。这段位定义决定了有哪些行为可用每个位由CreateUnattendXml()src/wue.c#L108消费并翻译成 XML// src/rufus.h#L687-L700 #define UNATTEND_SECUREBOOT_TPM_MINRAM 0x00001 #define UNATTEND_NO_ONLINE_ACCOUNT 0x00004 #define UNATTEND_NO_DATA_COLLECTION 0x00008 #define UNATTEND_OFFLINE_INTERNAL_DRIVES 0x00010 #define UNATTEND_DUPLICATE_LOCALE 0x00020 #define UNATTEND_SET_USER 0x00040 #define UNATTEND_DISABLE_BITLOCKER 0x00080 #define UNATTEND_FORCE_S_MODE 0x00100 #define UNATTEND_SILENT_INSTALL 0x00800 #define UNATTEND_QOL_ENHANCEMENTS 0x01000 #define UNATTEND_DEFAULT_MASK 0x016FF翻译结果落入 Windows 安装的四个 pass对应安装流程的不同环节pass写入内容触发标志windowsPELabConfig 绕过键、DiskConfiguration 自动分区0x1、0x800specializeBypassNRO、移除 OneDrive/Outlook/Teams0x4、0x1000oobeSystemProtectYourPC3、本地账户、区域设置0x8、0x20、0x40、0x800offlineServicingSanPolicy4、强制 S 模式0x10、0x100TPM 三项检查是如何被绕过的绕过项的名称硬编码在bypass_name[]数组src/wue.c#L45BypassTPMCheck、BypassSecureBootCheck、BypassRAMCheck全部写入HKLM\SYSTEM\Setup\LabConfig。生成侧的代码长这样// src/wue.c#L245-L250 for (i 0; i ARRAYSIZE(bypass_name); i) { fprintf(fd, RunSynchronousCommand wcm:action\add\\n); fprintf(fd, Order%d/Order\n, order); fprintf(fd, Pathreg add HKLM\\SYSTEM\\Setup\\LabConfig /v %s /t REG_DWORD /d 1 /f/Path\n, bypass_name[i]); fprintf(fd, /RunSynchronousCommand\n); }这段在 windowsPE pass 里以RunSynchronousCommand执行reg add是 setup.exe 预检阶段读取的开关。但 Rufus 并不止步于此——ApplyWindowsCustomization()src/wue.c#L1244会先把 boot.wim 第二分区里的Windows\System32\config\SYSTEM配置单元取出挂载直接把三个 LabConfig 值写进去再塞回 WIM。写成功后反而把 XML 里的RunSynchronous段落删掉src/wue.c#L1293-L1311避免安装时闪出一个黑色命令窗口。此外还有两处配合动作把sources\appraiserres.dll改名备份并建一个空占位文件src/wue.c#L1161-L1176让原地升级in-place upgrade也跳过 TPM 校验对 build ≥ 26000 的 Windows 11 24H2则用内嵌资源替换setup.exe为绕过包装器src/wue.c#L1182-L1217。文件最终落到哪里boot.wim 与 $OEM$ 两条路径应答文件写进 U 盘的位置取决于内容里有没有 windowsPE 段分发逻辑在src/wue.c#L1318-L1348// src/wue.c#L1342-L1344 static_sprintf(path, %c:\\sources\\$OEM$\\$$\\Panther\\unattend.xml, drive_letter); if (!CopyFileU(unattend_xml_path, path, TRUE)) { uprintf(Could not create %s: %s, path, WindowsErrorString());含 windowsPE 段时文件以Autounattend.xml写入 boot.wim 根目录src/wue.c#L1326WinPE 启动时自动消费并被 setup 顺带拷入%WINDIR%\Panther\unattend.xml供后续 pass 使用不含 windowsPE 段时则走上面这段$OEM$路径因为安装程序的文件复制阶段会把$OEM$\$$下的内容同步进Windows\。Windows To Go 场景则是直接把 unattend.xml 放到目标盘的Windows\Panther\src/wue.c#L1153并用dism /Apply-Unattend只应用 offlineServicing 段src/wue.c#L1089。还有一个前置检测扫描 ISO 时如果发现其中已存在\sources\$OEM$\$$\Panther\unattend.xmlsrc/iso.c#L448WUE 对话框整个不会弹出日志里只留一条 NOTICEsrc/rufus.c#L1695-L1697。跳过微软账户与静默安装的细节specialize pass 里那行著名的 BypassNRO源码就一行src/wue.c#L274// src/wue.c#L274 StrArrayAdd(commands, reg add \HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\OOBE\ /v BypassNRO /t REG_DWORD /d 1 /f, TRUE);BypassNRO1让 OOBE 接受本地账户。代码注释明确它与 S-Mode 互斥src/wue.c#L272两者同时勾选时行为不保证。数据收集开关ProtectYourPC3/ProtectYourPCsrc/wue.c#L327的命名有误导性——注释直言微软把它叫 ProtectYourPC实际只管数据收集叫 AllowDataCollection 大家早就关掉了。预建本地账户走 oobeSystem 的LocalAccountsrc/wue.c#L344-L383密码字段填的UABhAHMAcwB3AG8AcgBkAA是 UTF-16 字符串 Password 的 Base64属于微软应答文件的空密码占位写法好处是 setup 期间自动登录、首次登录时用net user /logonpasswordchg:yes强制改密。账户名会先过一份保留名黑名单Administrator、Guest、KRBTGT 等src/wue.c#L111-L115。勾选静默安装时则生成完整DiskConfiguration清盘 DiskID 0建 260MB EFI 16MB MSR 扩展主分区自动装到第三分区src/wue.c#L181-L233。常见坑与配置检查清单⚠️ 动手前先跑一遍这份检查清单装完盘后打开日志CtrlL确认出现 Selected Windows User Experience options 及你勾选的每一项文件会先落在临时目录再分发若 ISO 自带\sources\$OEM$\$$\Panther\unattend.xmlRufus 不会生成新文件WUE 对话框也不出现——这是预期行为不是 bug从 Microsoft Store 安装的 Rufus 无法挂载离线注册表会自动回退到 unattend 方案安装早期会出现命令窗口属代码注释里的已知情况src/wue.c#L1250WUE 勾选状态持久化在SETTING_WUE_OPTIONS键里便携模式则写入 rufus.ini见 res/rufus.iniBypassNRO 与 Enforce S Mode 不要同时勾选两者互斥src/wue.c#L272三条高频问题的答案安装时为什么闪命令窗口说明 boot.wim 里的注册表直写失败了常见于 Store 版 RufusRufus 回退到了RunSynchronousCommand方案功能等价只是难看。静默装到一半停在 Lets connect you to a network只有勾选静默安装时才会写入HideOnlineAccountScreens和HideWirelessSetupInOOBE两个标签src/wue.c#L329-L331漏勾这一项就会在网络断开的机器上卡住。绕过 TPM 后原地升级行不行行但依赖的是appraiserres.dll空占位文件src/wue.c#L1161-L1176它专门服务于 24H2 及更早版本的原地升级路径。【免费下载链接】rufusThe Reliable USB Formatting Utility项目地址: https://gitcode.com/GitHub_Trending/ru/rufus创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联
返回资讯列表 →