当前位置: 首页 > news >正文

华为 FusionCompute Win11 25H2 虚拟机模板制作文档

华为 FusionCompute Win11 25H2 虚拟机模板制作文档


一、环境信息

项目版本/说明
虚拟化平台华为 FusionCompute 8.6.0.SPC200 高级版
操作系统Windows 11 25H2(内核 26100+)
PV 驱动virtio-win-gt-x64.exe
登录账户内置 Administrator
兼容性说明FC 8.6.0.SPC200 原生未打补丁,不正式支持 Win11

二、系统安装方式

由于 FusionCompute 8.6.0.SPC200 未打补丁,原生不支持直接安装 Win11,采用以下升级路径:

  1. 在 FC 上正常创建虚拟机,安装Windows 10
  2. 进入 Win10 桌面后,挂载 Win11 ISO
  3. 在 Win10 内执行升级安装:
    setup.exe /product server
  4. 升级完成后,系统变为 Win11 25H2,硬件兼容性检查被绕过

⚠️/product server参数的作用是使用 Server SKU 的兼容性规则,跳过 Win11 的 TPM 2.0、安全启动、CPU 代际等硬件检查。这是在非正式支持环境下部署 Win11 的标准绕过手段。


三、目标

  • 克隆后零弹窗,直接进入 Administrator 桌面
  • 不弹出 OOBE、联网、隐私设置、区域选择等任何页面
  • 中文界面、中国时区完整保留
  • SID 由 Sysprep 重置,不使用 FC 自带的 SID 重置
  • 适配 FC 批量部署,无需手工建账号

四、前置条件

  • 已通过 Win10 升级方式完成 Win11 25H2 安装
  • 已以 Administrator 身份登录桌面
  • 已给 Administrator 设置密码
  • 已删除 OOBE 阶段创建的其他用户
  • 已安装华为 FC PV 驱动(virtio-win-gt-x64.exe),设备管理器无黄叹号
  • 已完成软件预装、系统清理等自定义操作
  • 网络处于 DHCP 状态(封装前会断开)

五、操作步骤

5.1 注册表加固

右键开始菜单 →终端(管理员),逐条执行:

reg add "HKLM\SYSTEM\CurrentControlSet\Control\Lsa" /v LimitBlankPasswordUse /t REG_DWORD /d 0 /f

作用:允许空密码账户本地登录(备用策略)

reg add "HKLM\SYSTEM\Setup" /v BypassNRO /t REG_DWORD /d 1 /f

作用:绕过 Win11 22H2+ OOBE 强制联网校验,这是最关键的注册表项

reg add "HKLM\SYSTEM\Setup\LabConfig" /v BypassRegionPage /t REG_DWORD /d 1 /f

作用:跳过 25H2 新增的区域/键盘选择页面

reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\OOBE" /v DisableOnlineAccountScreens /t REG_DWORD /d 1 /f

作用:禁用 OOBE 阶段的微软账号登录页面

reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\OOBE" /v HideEULAPage /t REG_DWORD /d 1 /f

作用:隐藏 OOBE 许可协议页面


5.2 确认 Administrator 状态

net user Administrator /active:yes

作用:确保内置 Administrator 账户处于启用状态。Sysprep 通用化后默认会禁用此账户,后续通过应答文件重新激活。


5.3 禁用网卡

查看当前网卡名称:

netsh interface show interface

根据显示的名称禁用网卡:

netsh interface set interface "以太网" admin=disable

作用:防止 Sysprep 封装过程中系统自动联网下载更新或触发 OOBE 联网校验。也可以在 FC 控制台直接断开虚拟机网卡,效果相同。


5.4 创建应答文件

打开PowerShell(管理员),粘贴以下内容(赋值变量):

$xml= @" <?xml version="1.0" encoding="utf-8"?> <unattend xmlns="urn:schemas-microsoft-com:unattend" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"> <settings pass="offlineServicing"> <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"> <DoNotCleanTaskBar>true</DoNotCleanTaskBar> </component> </settings> <settings pass="specialize"> <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"> <CopyProfile>false</CopyProfile> <ComputerName>*</ComputerName> <TimeZone>China Standard Time</TimeZone> <RegisteredOwner>Administrator</RegisteredOwner> </component> </settings> <settings pass="oobeSystem"> <component name="Microsoft-Windows-International-Core" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"> <SystemLocale>zh-CN</SystemLocale> <InputLocale>zh-CN</InputLocale> <UILanguage>zh-CN</UILanguage> <UserLocale>zh-CN</UserLocale> <UILanguageFallback>zh-CN</UILanguageFallback> </component> <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"> <OOBE> <HideEULAPage>true</HideEULAPage> <HideLocalAccountScreen>true</HideLocalAccountScreen> <HideOnlineAccountScreens>true</HideOnlineAccountScreens> <HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE> <HideOEMRegistrationScreen>true</HideOEMRegistrationScreen> <HideChangeAccountSettings>true</HideChangeAccountSettings> <HideMalwareSignupScreen>true</HideMalwareSignupScreen> <SkipMachineOOBE>true</SkipMachineOOBE> <SkipUserOOBE>true</SkipUserOOBE> <NetworkLocation>Work</NetworkLocation> <ProtectYourPC>3</ProtectYourPC> </OOBE> <AutoLogon> <Username>Administrator</Username> <Enabled>true</Enabled> <LogonCount>9999</LogonCount> <Password> <Value>你的密码</Value> <PlainText>true</PlainText> </Password> </AutoLogon> <UserAccounts> <AdministratorPassword> <Value>你的密码</Value> <PlainText>true</PlainText> </AdministratorPassword> </UserAccounts> <FirstLogonCommands> <SynchronousCommand wcm:action="add"> <CommandLine>reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AutoLogonCount /t REG_DWORD /d 9999 /f</CommandLine> <Description>AutoLogonCountRefresh</Description> <Order>1</Order> <RequiresUserInput>false</RequiresUserInput> </SynchronousCommand> <SynchronousCommand wcm:action="add"> <CommandLine>reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultPassword /t REG_SZ /d "你的密码" /f</CommandLine> <Description>DefaultPasswordWrite</Description> <Order>2</Order> <RequiresUserInput>false</RequiresUserInput> </SynchronousCommand> </FirstLogonCommands> </component> </settings> </unattend> "@

⚠️ 粘贴时注意:

  • 第一行$xml = @"后面必须直接换行
  • 最后一行"@必须顶格,前面不能有空格
  • 如果提示>>说明还在等待输入,继续粘贴直到出现PS C:\>提示符

然后写入文件(无 BOM):

[System.IO.File]::WriteAllText("C:\Windows\System32\Sysprep\unattend.xml",$xml,(New-ObjectSystem.Text.UTF8Encoding$false))

验证文件编码:

[byte[]]$b=Get-Content"C:\Windows\System32\Sysprep\unattend.xml"-Encoding Byte-TotalCount 3;"$($b[0].ToString('X2'))$($b[1].ToString('X2'))$($b[2].ToString('X2'))"
  • 输出3C 3F 78→ ✅ 无 BOM,正确
  • 输出EF BB BF→ ❌ 带 BOM,需重新生成

⚠️密码替换:全文搜索"你的密码",共3 处,必须全部替换为 Administrator 的实际密码。


5.5 执行 Sysprep 封装

C:\Windows\System32\Sysprep\sysprep.exe /generalize /oobe /shutdown /mode:vm /unattend:C:\Windows\System32\Sysprep\unattend.xml

参数说明:

参数作用
/generalize通用化系统,清除 SID 等计算机特定信息
/oobe下次启动进入 OOBE 阶段(由应答文件自动处理)
/shutdown封装完成后自动关机
/mode:vm虚拟化环境专用参数,保留虚拟化驱动、避免 BCD 引导配置通用化失败
/unattend:指定应答文件路径

系统会弹出 Sysprep 窗口,等待自动关机,不要手动强制关机。


5.6 FC 控制台转模板

  1. 登录FusionCompute 管理平台
  2. 找到已关机的虚拟机 →转为模板
  3. ⚠️关闭"虚拟机个性化"中的 SID 重置功能

原因:Sysprep/generalize已重置 SID,FC 自带的 SID 重置与 Sysprep 机制冲突,混合使用会导致域信任异常、权限丢失等问题。


六、验证

从模板创建一台新虚拟机,开机后应满足:

检查项预期结果
OOBE 页面不弹出任何页面
联网要求不要求联网
创建用户不要求创建用户
隐私设置不弹出
区域/键盘选择不弹出
桌面进入直接进入 Administrator 桌面
界面语言简体中文
时区中国标准时间(UTC+8)
预装软件全部保留

七、排错

7.1 如果克隆后卡在 OOBE 界面

Shift + F10打开 CMD,查看日志:

notepad C:\Windows\Panther\unattendgc\setupact.log

搜索ErrorFatal定位具体原因。

7.2 常见问题速查

现象原因解决
卡在"让我们为你添加账户"OOBE 联网强制登录检查 BypassNRO 注册表是否生效
卡在区域/键盘选择页25H2 区域校验检查 BypassRegionPage 注册表是否生效
提示"此账户已被禁用"Administrator 未启用检查应答文件中 AdministratorPassword 是否正确
要求输密码但进不去密码不一致应答文件 3 处密码必须与 net user 设置的一致
Sysprep 报错"组件或设置不存在"应答文件含有被移除的参数对照本文档的应答文件内容逐行检查
Sysprep 报错0x800705b9应答文件编码带 BOM用 PowerShell 无 BOM 方式重新写入
Sysprep 报错c000000dBCD 失败虚拟化环境缺少/mode:vm封装命令中必须加/mode:vm

八、踩坑记录

问题根因教训
记事本保存应答文件导致 Sysprep 报错记事本 UTF-8 编码带 BOM 头,Sysprep 无法解析必须用 PowerShell 无 BOM 方式写入文件
缺少/mode:vm导致 BCD 通用化失败虚拟化环境需要此参数保留虚拟化驱动FC 环境下 sysprep 命令必须加/mode:vm
FC 自带 SID 重置与 Sysprep 冲突两种 SID 重置机制互斥转模板时必须关闭 FC 的 SID 重置
应答文件中 AutoLogon 缺少 Password 节点25H2 要求自动登录必须提供密码AutoLogon 和 UserAccounts 中都要写密码
首次登录后自动登录计数递减LogonCount 每次重启减 1通过 FirstLogonCommands 刷新计数

九、应答文件参数说明

参数作用阶段
DoNotCleanTaskBar保留任务栏配置offlineServicing
CopyProfile=false不拷贝用户配置文件,避免封装报错specialize
ComputerName=*随机生成计算机名,避免克隆后重名specialize
TimeZone强制中国时区specialize
SystemLocale/InputLocale/UILanguage/UserLocale强制简体中文oobeSystem
UILanguageFallback界面语言回退设置为中文oobeSystem
HideEULAPage隐藏许可协议oobeSystem
HideOnlineAccountScreens隐藏微软账号登录页oobeSystem
HideWirelessSetupInOOBE隐藏无线网络配置页oobeSystem
HideLocalAccountScreen隐藏本地账户创建页oobeSystem
HideOEMRegistrationScreen隐藏 OEM 注册页oobeSystem
HideChangeAccountSettings隐藏账户设置变更页oobeSystem
HideMalwareSignupScreen隐藏安全软件注册页oobeSystem
SkipMachineOOBE跳过计算机 OOBEoobeSystem
SkipUserOOBE跳过用户 OOBEoobeSystem
NetworkLocation=Work网络位置设为工作网络oobeSystem
ProtectYourPC=3关闭 Windows Defender 自动维护oobeSystem
AutoLogon配置 Administrator 自动登录oobeSystem
AdministratorPassword激活内置管理员并设置密码oobeSystem
FirstLogonCommands首次登录时刷新自动登录计数和密码oobeSystem

文档版本:v1.0 | 适用环境:Win11 25H2 + 华为 FusionCompute 8.6.0.SPC200 高级版(Win10 升级安装)

http://www.jsqmd.com/news/697420/

相关文章:

  • 5步快速上手LaserGRBL:开源激光雕刻控制软件的完整实践指南
  • 用 Roo Code 插件让 Cursor 接入 Claude:零基础配置教程(2026)
  • 从“含茶量”到技术洞察:如何用算法追踪社交网络中的热点话题
  • VESTA绘图进阶:从“能看”到“好看”,手把手教你调出SCI论文级晶体结构图
  • C++ vector底层实现大揭秘
  • 分享一套锋哥原创的SpringBoot4+Vue3实验室预约管理系统
  • FRED应用:目标平面特定照度分布优化
  • PDA5927四象限光电管:从基础测试到光电流线性化应用
  • 告别电源纹波焦虑:手把手教你用村田Simsurfing为LMR14030精准选输出电容
  • Qwen3.6-27B 开源:昇腾适配已到位,AtomGit AI 开放体验
  • 2026年上海大型仿真模型定制与全国工业模型制作深度指南 - 企业名录优选推荐
  • 为什么打工人都爱清远漂流?一趟团建给出了答案 - 佳天下国旅
  • USB隔离
  • 嵌入式Linux实战:手把手教你为i.MX6ULL开发板移植FT5X06触摸驱动(含设备树配置)
  • 别再傻傻分不清OLTP和OLAP了!用TiDB和MySQL实战带你搞懂HTAP架构
  • MATLAB R2022a + YOLOv5s:手把手教你搭建一个带中文界面的目标检测小工具(附完整代码)
  • 高管断裂带FAU和ASW结果+计算代码R语言2010-2022年
  • FPG平台:投教资源如何提升交易员的市场认知
  • 【架构实战】CQRS架构模式实战
  • 2026年贵阳运营岗位开放潮:从死工资到年薪30万+,这个赛道为什么值得All In? - 年度推荐企业名录
  • 如何让Blender成为你的3D打印创意工厂:3MF插件终极指南
  • LabVIEW FPGA SPI通信保姆级教程:从单端口到多路复用的配置避坑指南
  • 场景真实感,才是电商视频真正的转化杠杆
  • 2026年绍兴短视频代运营与AI推广服务深度选型指南:政企视频营销一站式方案 - 年度推荐企业名录
  • 从CT到MRI:不同设备DICOM图像的像素间距差异有多大?一份实测对比报告
  • 思源黑体TTF:高性能字体提示优化与多区域字符集构建实战方案
  • 从JDK动态代理到CGLIB:Spring事务@EnableTransactionManagement中proxyTargetClass参数的真实影响
  • wechat-need-web浏览器扩展解决方案:跨平台微信网页版访问技术实现
  • Voxtral-4B-TTS-2603企业实操:将TTS能力集成至内部知识库语音搜索
  • 别再被数据手册骗了!实测4款运放偏置电流,面包板漏电流竟有这么大影响