本文档说明了如何使用 Microsoft Activation Scripts (MAS) 更改您的 Windows 版本。此功能允许您从一个 Windows 版本升级到另一个版本(例如,从 Windows 家庭版升级到专业版),同时保留您的数据和设置。这在执行某些类型的激活(尤其是 HWID 激活)之前通常是必需的,因为 HWID 激活需要特定的 Windows 版本。有关检查激活状态,请参阅检查激活状态。
MAS 中的“更改 Windows 版本”功能允许您在兼容的 Windows 版本之间切换,而无需重新安装 Windows。这在以下场景中很有用:
来源: MAS/Separate-Files-Version/Change_Windows_Edition.cmd400-616
在更改 Windows 版本之前,请确保以下事项
脚本会自动验证关键的系统文件和服务
- sppsvc.exe (Software Protection Service)
- dism.exe (Deployment Image Servicing and Management)
来源: MAS/Separate-Files-Version/Change_Windows_Edition.cmd315-331
MAS 使用不同的方法来更改 Windows 版本,具体取决于您当前的 Windows 版本和目标版本
对于同一 Windows 系列内的兼容版本更改,MAS 可以使用软件许可服务直接安装相应的产品密钥。这是最简单的方法,不需要重启系统。
对于 Windows 10/11 中更复杂的版本更改,MAS 使用部署映像服务和管理 (DISM) API。此方法
对于 Windows 7/8/8.1,MAS 使用 CBS 方法,该方法
来源: MAS/Separate-Files-Version/Change_Windows_Edition.cmd494-616 MAS/Separate-Files-Version/Change_Windows_Edition.cmd620-759
脚本使用多种方法来检测您当前的 Windows 版本并确定可用的升级路径
主要通过 DISM 进行检测
DISM /English /Online /Get-CurrentEdition
如果 DISM 失败,则通过 WMI 进行回退检测
SoftwareLicensingProduct where ApplicationID='55c92734-d682-4d71-983e-d6ec3f16059f'
通过检查进行注册表验证
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\EditionID
可用的目标版本通过以下方式检测
DISM /Online /English /Get-TargetEditions
来源: MAS/Separate-Files-Version/Change_Windows_Edition.cmd367-387 MAS/Separate-Files-Version/Change_Windows_Edition.cmd406-414
对于版本更改,MAS 需要产品密钥。脚本通过以下几种方法获取这些密钥
脚本会根据您的 Windows 版本和目标版本智能地选择适当的密钥类型。
Key Flow Priority: Retail → Volume:GVLK → Volume:MAK → OEM:NONSLP → OEM:DM → PGS:TB → Retail:TB:Eval
来源: MAS/Separate-Files-Version/Change_Windows_Edition.cmd529-538 MAS/Separate-Files-Version/Change_Windows_Edition.cmd1297-1367
当您从 MAS 菜单中运行“更改 Windows 版本”选项时,该过程将遵循以下步骤
来源: MAS/Separate-Files-Version/Change_Windows_Edition.cmd450-493 MAS/Separate-Files-Version/Change_Windows_Edition.cmd552-617
下表列出了“更改 Windows 版本”功能支持的常见升级路径
| 当前版本 | 可能的目標版本 |
|---|---|
| 家庭/核心版 | 专业版、教育版 |
| 专业 | 专业工作站版、教育版、企业版 |
| 企业版 | 专业版、教育版 |
| 教育背景 | 专业版、企业版 |
| 专业版 N | 专业工作站版 N、教育版 N、企业版 N |
| S 模式版本 | 相应的非 S 版本 |
| 服务器标准版 | 服务器数据中心版 |
请注意,并非所有版本都可以互相更改,并且某些版本有特定要求。脚本会自动检测并仅显示有效的升级选项。
来源: MAS/Separate-Files-Version/Change_Windows_Edition.cmd398-446
MAS 包含全面的 Windows 版本更改日志记录,以帮助诊断问题
在故障排除时
来源: MAS/Separate-Files-Version/Change_Windows_Edition.cmd738-789
服务器版本在脚本中有特殊处理
对于高级用户,脚本包含一个隐藏选项,可在 CBS 升级期间阶段化当前版本。这由脚本开头的 _stg 变量控制。
:: To stage current edition while changing edition with CBS Upgrade Method, change 0 to 1 in below line
set _stg=0
启用后,这将保留当前版本的配置,这在复杂的升级场景中可能很有用。
来源: MAS/Separate-Files-Version/Change_Windows_Edition.cmd15-16 MAS/Separate-Files-Version/Change_Windows_Edition.cmd650-651
“更改 Windows 版本”功能与其他 MAS 组件紧密集成
“更改 Windows 版本”功能对于 HWID 激活尤其重要,因为某些 Windows 版本不支持 HWID 激活。在这种情况下,您需要先更改为受支持的版本。
来源: MAS/All-In-One-Version/MAS_AIO.cmd377-397
对于较新版本的 Windows,脚本使用 PowerShell 反射与 pkeyhelper.dll 进行交互并提取相应的产品密钥
对于较旧的 Windows 版本,脚本会使用基于组件的服务 (CBS) 系统生成并应用自定义 XML 配置
来源: MAS/Separate-Files-Version/Change_Windows_Edition.cmd925-971 MAS/Separate-Files-Version/Change_Windows_Edition.cmd1033-1252
来源: MAS/Separate-Files-Version/Change_Windows_Edition.cmd417-446
MAS 中的“更改 Windows 版本”功能提供了一种可靠的方式在保留您的数据和设置的同时在 Windows 版本之间切换。当为需要特定版本的激活方法(例如 Windows 10/11 的 HWID 激活)准备系统时,它特别有用。
有关更改版本后的激活故障排除,请参阅故障排除文档。