菜单

技术参考

相关源文件

本文档为高级用户和开发人员提供有关 Microsoft Activation Scripts (MAS) 系统的详细技术信息。它涵盖了内部架构、代码结构、执行流程、激活机制和技术组件。有关安装说明,请参阅安装指南,有关特定激活方法的详细信息,请参阅激活方法下的相应页面。

系统架构

MAS 采用模块化设计,以中央接口(MAS_AIO.cmd)协调各种激活方法和支持功能。其架构遵循基于命令的模式,具有集中的初始化和专门的激活模块。

来源:MAS/All-In-One-Version-KL/MAS_AIO.cmd1-400

脚本执行流程

MAS 的执行流程遵循从初始化到激活再到结果报告的预定义模式

来源:MAS/All-In-One-Version-KL/MAS_AIO.cmd22-303 MAS/All-In-One-Version-KL/MAS_AIO.cmd332-400

技术组件

脚本初始化

MAS 以关键的初始化步骤开始,以确保激活功能的一致环境

  1. 环境变量设置 - 设置 PathExtSysPathPath 和其他基本环境变量
  2. 系统架构检测 - 确定 32 位与 64 位以及 ARM 架构
  3. 重新启动逻辑 - 使用适当的位(x64、ARM64、ARM32)重新启动脚本
  4. 服务验证 - 检查 Null 服务是否正在运行
  5. 行尾验证 - 检查 LF 行尾是否正确,以验证脚本格式

该脚本使用一种特定的重新启动技术来处理不同的系统架构

来源:MAS/All-In-One-Version-KL/MAS_AIO.cmd22-102

命令行处理

MAS 支持用于无人值守激活的命令行开关。命令行处理逻辑会提取并验证参数,然后相应地路由执行。

主要开关包括:

  • /HWID - HWID 激活
  • /Ohook - Ohook 激活
  • /Z- - TSforge 激活
  • /K- - KMS 激活
  • /KMS38 - KMS38 激活
  • /S - 静默模式

命令行处理发生在 MAS/All-In-One-Version-KL/MAS_AIO.cmd109-124,执行路由发生在 MAS/All-In-One-Version-KL/MAS_AIO.cmd294-308

系统检测

MAS 包含全面的系统检测,用于识别:

  1. Windows 版本和内部版本号
  2. 系统架构(x86/x64/ARM)
  3. 版本信息(SKU ID),使用多种方法
  4. 激活状态
  5. 服务状态
  6. Windows 订阅详情

这些信息通过以下方式检索:

  • WMI 查询
  • PowerShell 反射技术
  • 注册表查询
  • SoftwareLicensing API 调用

系统检测方法表

信息检测方法代码位置
Windows 内部版本注册表和文件版本MAS_AIO.cmd1050-1052
系统架构环境变量MAS_AIO.cmd30-40
Windows 版本注册表和 SoftwareLicensingMAS_AIO.cmd1112-1145
激活状态WMI 查询 SoftwareLicensingMAS_AIO.cmd1171-1173
Office 存在注册表和文件检测MAS_AIO.cmd2237-2245
服务状态服务控制管理器MAS_AIO.cmd709-730

来源:MAS/All-In-One-Version-KL/MAS_AIO.cmd105-150 MAS/All-In-One-Version-KL/MAS_AIO.cmd1048-1175

Windows 注册表操作

MAS 出于各种目的与 Windows 注册表进行广泛交互

  1. 检查激活状态:查询与许可相关的注册表项
  2. 检测已安装产品:通过注册表检查 Windows/Office 安装情况
  3. 检索许可信息:读取产品密钥、令牌和激活数据
  4. 进行配置更改:修改注册表设置以进行激活

使用的主要注册表路径

  • HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion
  • HKLM\SYSTEM\CurrentControlSet\Services\sppsvc
  • HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\State
  • HKCU\SOFTWARE\Microsoft\Office\16.0\Common\Licensing

来源:MAS_AIO.cmd1112-1145 MAS/Separate-Files-Version/Check_Activation_Status.cmd152-183

激活方法

HWID (硬件 ID) 激活

HWID 激活通过以下方式为 Windows 创建永久数字许可证:

  1. 安装通用产品密钥
  2. 生成硬件哈希(GenuineTicket.xml)
  3. 将哈希提交给 Microsoft 激活服务器
  4. 接收并安装与硬件 ID 绑定的数字许可证

技术工作流程

来源:MAS/All-In-One-Version-KL/MAS_AIO.cmd550-1042

Ohook 激活

Ohook 通过以下方式提供永久 Office 激活:

  1. 将 DLL 钩子安装到 Office 许可系统中
  2. 拦截许可验证调用
  3. 无论实际许可如何,都返回成功的激活状态

实现涉及:

  • 创建修改后的 Office SPP DLL 文件
  • 在 Office 目录中安装这些 DLL
  • 设置注册表项以确保钩子被加载

来源:MAS/All-In-One-Version-KL/MAS_AIO.cmd2069-2790

在线 KMS 激活

在线 KMS 激活使用密钥管理服务激活 Windows 和 Office

  1. 设置 KMS 客户端配置
  2. 安装产品密钥
  3. 连接到 KMS 服务器
  4. 激活 180 天(可续期)

关键技术组件

  • KMS 客户端模拟
  • 服务器发现机制
  • 自动续期任务设置

来源:MAS/All-In-One-Version-KL/MAS_AIO.cmd3700-4500

诊断和日志记录系统

MAS 包括一个全面的诊断系统,该系统:

  1. 在激活前检查系统状态
  2. 验证必备服务
  3. 检测许可组件的潜在问题
  4. 识别可能影响激活的恶意软件或篡改
  5. 报告详细的错误信息

激活状态检查组件(MAS/Separate-Files-Version/Check_Activation_Status.cmd) 使用以下方法提供详细的诊断信息:

  1. WMI 查询 SoftwareLicensingProduct 和 SoftwareLicensingService
  2. 直接 API 调用 SLC.dll 以获取额外信息
  3. PowerShell 反射以访问非公共数据

来源:MAS/Separate-Files-Version/Check_Activation_Status.cmd197-241 MAS/Separate-Files-Version/Check_Activation_Status.cmd415-601

错误处理和恢复

MAS 采用多层方法进行错误检测和处理

  1. 必备条件验证:在激活前检查所需组件
  2. 服务状态监控:确保必要服务正在运行
  3. 注册表完整性检查:验证许可注册表项未损坏
  4. 错误代码解释:将数字错误代码转换为有意义的消息
  5. 恢复建议:根据错误类型提供具体的故障排除步骤

关键错误处理技术

  • 检查关键操作的返回代码
  • PowerShell 片段中的异常处理
  • 操作前后进行系统状态验证
  • 针对常见问题的内置恢复

激活失败时,脚本会提供详细的故障排除信息,包括:

  • 错误代码及说明
  • 针对特定问题的在线资源链接
  • 针对某些常见问题的自动恢复选项

来源: MAS/All-In-One-Version-KL/MAS_AIO.cmd707-766 MAS/All-In-One-Version-KL/MAS_AIO.cmd1426-1737

OEM 部署支持

MAS 通过 Extract $OEM$ Folder 功能,为系统管理员和 OEM 厂商提供部署能力

  1. 为 Windows 部署创建标准化的 $OEM$ 文件夹结构
  2. 生成包含所选激活方法的 SetupComplete.cmd
  3. 打包脚本,以便在操作系统安装过程中自动执行

生成的文件夹遵循以下结构

这使得组织能够

  • 在部署期间预激活 Windows
  • 为多个系统自动化激活
  • 实施一致的激活策略

来源: MAS/All-In-One-Version-KL/MAS_AIO.cmd447-546

安全考量

MAS 实施了多项安全措施

  1. 管理员权限检查:确保脚本以正确的权限运行
  2. 文件完整性验证:检查脚本格式和结构
  3. 服务验证:验证关键服务是否正常运行
  4. 恶意软件检测:识别常见的恶意软件或未经授权的激活器
  5. 系统保护:防止对系统文件进行有害的更改

来源: MAS/All-In-One-Version-KL/MAS_AIO.cmd73-102 MAS/All-In-One-Version-KL/MAS_AIO.cmd1386-1419

命令行参考

MAS 支持一套全面的命令行参数,用于无人值守操作和特殊功能

参数功能描述
/HWIDHWID 激活使用 HWID 方法激活 Windows
/HWID-NoEditionChange不更改版本的 HWID不修改 Windows 版本的 HWID 激活
/OhookOhook 激活使用 Ohook 方法激活 Office
/Ohook-Uninstall移除 Ohook卸载 Ohook 激活
/KMS38KMS38 激活使用 KMS38 方法激活 Windows
/K-WindowsOffice在线 KMS使用 KMS 同时激活 Windows 和 Office
/K-WindowsWindows 在线 KMS仅使用 KMS 激活 Windows
/K-OfficeOffice 在线 KMS仅使用 KMS 激活 Office
/Z-WindowsESUOfficeTSforge Multiple用于 Windows、ESU 更新和 Office 的 TSforge 激活
/S静默模式隐藏大部分输出以实现静默操作

此外,还可以组合使用命令行参数以实现全面的操作,例如:/HWID /Ohook /S 可静默激活 Windows (HWID) 和 Office (Ohook)。

来源: MAS/All-In-One-Version-KL/MAS_AIO.cmd294-308 MAS/All-In-One-Version-KL/MAS_AIO.cmd552-578

系统要求与兼容性

MAS 具有特定的系统要求才能正常运行

组件要求
Windows 版本Windows 7 SP1 或更高版本 / Windows Server 2008 R2 或更高版本
架构支持 x86, x64, ARM64
PowerShellPowerShell 2.0 或更高版本,语言模式为完整模式
.NET Framework4.0 或更高版本(内置于支持的 Windows 版本中)
权限需要管理员权限
互联网HWID 需要,其他方法可选
Windows 更新HWID 需要正常运行的 Windows 更新服务
Office 版本Office 2016 或更高版本(C2R 版本)的 Ohook

兼容性说明

  • HWID:仅限 Windows 10/11(不包括 Server 版本)
  • Ohook:仅限 Office 2016+ Click-to-Run 版本
  • KMS38:所有支持的 Windows 版本
  • 在线 KMS:所有支持的 Windows 和 Office 版本
  • Windows 7/8/8.1 需要特定的激活方法

来源: MAS/All-In-One-Version-KL/MAS_AIO.cmd133-149 MAS/All-In-One-Version-KL/MAS_AIO.cmd583-626