MAS Ohook 激活提示S-1-5-20 SPP权限异常解决指南

2026-05-26 电脑故障

使用 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 权限异常时的典型命令行输出:

可以看到,虽然 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 已内置修复工具,按以下步骤操作:

  1. 以 管理员身份 运行 PowerShell
  2. 执行 MAS 脚本
  3. 在主菜单中选择 Troubleshoot
  4. 选择 Fix Licensing
  5. 等待修复完成后,重新执行 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 的数字许可证或产品密钥。


六、参考链接