使用 MAS(Microsoft Activation Scripts)的 Ohook 方式激活 Office 时,在诊断阶段可能会检测到以下错误:
Checking SPP Permission
[Error Found In S-1-5-20 SPP]同时提示建议返回主菜单进入 Troubleshoot → Fix Licensing 修复。
本文将结合 MAS Ohook 的实际运行日志,详细讲解 S-1-5-20(NETWORK SERVICE 账户)SPP 注册表权限异常 的原因、诊断方法和修复方案。
一、完整运行日志分析
以下是 MAS Ohook 激活过程中出现 SPP 权限异常时的典型命令行输出:
Checking OS Info
[Windows 11 家庭版中文版 | 26200.8246 | AMD64]
Initialing Diagnostic Tests...
[DONE]
Checking SPP Permission
[Error Found In S-1-5-20 SPP]
Go back to Main Menu, select Troubleshoot and run Fix Licensing option.
Checking WPA Registry Count
[197]
Activating Office...
[C2R 16.0.19929.20106 | ProPlus2021 | x64]
Installing Generic Product Key
[H8DN8-Y2YP3-CR9JT-DHDR9-C7GP3] [O365ProPlusRetail] [Subscription2] [Successful]
[XYNTG-R96FY-369HX-YFPHY-F9CPM] [OneNoteFreeRetail] [Bypass Successful]
[8WXTP-MN628-KY44G-VJWCK-C7PCF] [ProPlus2021Retail] [Retail] [Successful]
Symlinking System sppc.dll
["C:\Program Files\Microsoft Office\root\vfs\System\sppc.dll"] [Successful]
Extracting Custom sppc64.dll to
["C:\Program Files\Microsoft Office\root\vfs\System\sppc64.dll"] [Successful]
Modifying Hash of Custom sppc64.dll
[Successful]
Clearing Office License Blocks
[Successfully cleared from all user accounts]
Adding Registry to Skip License Check
[Successfully added to all 1 & future new user accounts]
Some errors were detected.
https://massgrave.dev/troubleshoot可以看到,虽然 SPP 权限检查失败,但后续的 Ohook 注入步骤(Symlinking、Extracting、Modifying Hash、Clearing License Blocks、Adding Registry)全部成功。这意味着 Ohook 的核心机制已生效,但因为 SPP 权限异常,系统仍会提示错误。
二、错误原因
S-1-5-20 是什么?
S-1-5-20 是 Windows 安全标识符(SID),对应 NT AUTHORITY\NETWORK SERVICE 账户。
| 项目 | 值 |
|---|---|
| SID | S-1-5-20 |
| 账户名 | NT AUTHORITY\NETWORK SERVICE |
| 用途 | Windows 内置服务账户,运行网络相关服务 |
| 关联服务 | Software Protection Platform(sppsvc) |
Ohook 激活需要 NETWORK SERVICE 账户 对 HKLM\SYSTEM\CurrentControlSet\Services\sppsvc 注册表项具有 完全控制 权限。如果该账户的权限被修改或丢失,MAS 诊断就会报错。
常见触发原因
| 原因 | 说明 |
|---|---|
| 🛡️ 杀毒软件干预 | 某些安全软件会锁定 SPP 相关注册表权限 |
| 🔧 系统优化工具 | 如 Dism++、CCleaner 等清理工具可能误删权限 |
| 💿 精简版系统 | 第三方精简版 Windows 可能移除了默认权限配置 |
| 🔄 系统更新重置 | Windows 大版本更新后部分注册表权限被重置 |
三、解决方案
方案 1:使用 MAS 自带的 Fix Licensing(推荐)
MAS 已内置修复工具,按以下步骤操作:
- 以 管理员身份 运行 PowerShell
- 执行 MAS 脚本
- 在主菜单中选择 Troubleshoot
- 选择 Fix Licensing
- 等待修复完成后,重新执行 Ohook 激活
Fix Licensing 会自动执行以下操作:
- 重置 SPP 相关注册表权限
- 重新注册 SPP 服务
- 清理损坏的许可证令牌
方案 2:手动修复注册表权限
如果自动修复未生效,可以手动添加权限:
# 以管理员身份运行 PowerShell
$regPath = "HKLM:\SYSTEM\CurrentControlSet\Services\sppsvc"
$acl = Get-Acl -Path $regPath
# 为 NETWORK SERVICE 添加完全控制权限
$permission = "NT AUTHORITY\NETWORK SERVICE","FullControl","ContainerInherit,ObjectInherit","None","Allow"
$accessRule = New-Object System.Security.AccessControl.RegistryAccessRule $permission
$acl.SetAccessRule($accessRule)
Set-Acl -Path $regPath -AclObject $acl
# 重启 SPP 服务
Stop-Service sppsvc -Force
Start-Service sppsvc
# 验证权限
$acl = Get-Acl -Path $regPath
$acl.Access | Where-Object { $_.IdentityReference -like "*NETWORK SERVICE*" }方案 3:重置 SPP 服务
如果权限修复后问题依旧,可以尝试完整重置 SPP:
# 停止服务
net stop sppsvc
# 重新注册 SPP
regsvr32 /s %windir%\system32\sppcomapi.dll
regsvr32 /s %windir%\system32\sppc.dll
# 启动服务
net start sppsvc
# 运行系统文件检查
sfc /scannow
dism /online /cleanup-image /restorehealth⚠️ 注意:执行
dism和sfc可能需要联网下载修复文件,耗时较长,请耐心等待。
四、如何判断 Ohook 是否真正生效?
尽管 MAS 报告了 SPP 权限错误,但从前面的日志可以看到 Ohook 的核心步骤全部成功。可以通过以下方式确认激活状态:
方法 1:在 Office 中查看
打开任意 Office 应用(Word / Excel / PowerPoint):
- 文件 → 账户 → 查看产品激活状态
- 如果显示 已激活的产品,则 Ohook 已生效
方法 2:检查注册表
# 查看 Ohook 的跳过许可证检查标记
Get-ItemProperty -Path "HKCU:\Software\Microsoft\Office\16.0\Common\Licensing" -Name "SkipLicenseCheck" -ErrorAction SilentlyContinue如果返回值存在,说明 Ohook 已成功注入。
方法 3:用命令验证
cscript "%ProgramFiles%\Microsoft Office\Office16\ospp.vbs" /dstatus查看输出中的 LICENSE STATUS 是否为 ---LICENSED---。
五、常见问题
Q:Fix Licensing 修复后 SPP 权限错误依然存在?
尝试关闭所有杀毒软件的实时防护后再执行修复,部分安全软件会在修复完成后立即重新锁定权限。
Q:跳过 SPP 错误直接使用 Ohook,Office 能正常激活吗?
可以。从前面的运行日志可以看出,SPP 权限异常不影响 Ohook 的注入流程(Symlinking、Extracting DLL、Clearing License 等步骤全部成功)。很多用户即使看到 SPP 错误,Office 也能正常激活使用。
Q:重复运行 Ohook 会有什么影响?
MAS 的 Ohook 机制是幂等的——重复运行不会损害系统,也不会导致 Office 异常。如果激活成功,再次运行 Ohook 会提示已激活。
Q:Fix Licensing 会不会影响 Windows 本身的激活状态?
不会。Fix Licensing 仅修复 SPP 服务的注册表权限和许可证令牌,不影响 Windows 的数字许可证或产品密钥。