许可与激活

事件 8198、激活Windows时出错0xC0020017或0x8007139F - Windows Server

· 52CE 我爱测

本文介绍如果事件 ID 8198 包含错误代码 0xC0020017 或 0x8007139F,应如何解决该问题。 这些代码在此事件中发生时,表示Windows KMS 客户端无法联系密钥管理服务(KMS)进行激活。 本文中的故障排除步骤将带你逐步了解最常见的原因,包括 VPN 或隧道配置问题、客户端设置不正确以及网络连接问题。 这些步骤适用于物理计算机、本地虚拟机(VM)和Azure VM。 症状 尝试激活Windows系统时,标准 slmgr.vbs

本文介绍如果事件 ID 8198 包含错误代码 0xC0020017 或 0x8007139F,应如何解决该问题。 这些代码在此事件中发生时,表示Windows KMS 客户端无法联系密钥管理服务(KMS)进行激活。

本文中的故障排除步骤将带你逐步了解最常见的原因,包括 VPN 或隧道配置问题、客户端设置不正确以及网络连接问题。 这些步骤适用于物理计算机、本地虚拟机(VM)和Azure VM。

症状

尝试激活Windows系统时,标准 slmgr.vbs /ato 命令将返回一般故障代码。 但是,实际错误记录在应用程序日志中为事件 ID 8198。 事件内容类似于以下示例:

Source: Security-SPP
Event ID: 8198
Error code: <ErrorCode>
Description: License Activation failed. The Software Protection service reported that the computer couldn't be activated.

注释

在事件输出中, <ErrorCode> 表示多个错误代码之一。 对于本文中讨论的这个问题,错误代码为 0xC0020017 或 0x8007139F。

若要查看此事件,请在客户端上打开 Windows PowerShell,然后运行以下 cmdlet:

Get-WinEvent -FilterHashtable @{LogName='Application'; ProviderName='Security-SPP'; Id=8198} -MaxEvents 5 | Format-List TimeCreated, Message

原因

错误 0xC0020017 指示 KMS 客户端上的软件保护平台 (SPP) 服务无法联系 KMS 主机。 此错误在功能上类似于错误 0xC004F074,但它来自不同的代码路径。 SPP 事件管道报告此错误,而不是 System-Level 缓存 (SLC) API。

在以下任一情况下,可能会出现此问题:

  • 防火墙阻止 KMS 流量:防火墙规则或网络安全组 (NSG) 规则阻止到 KMS 主机或服务的流量。
  • 强制隧道:所有出站流量都通过 VPN 或类似技术路由,绕过 KMS 终结点。 例如,如果实现 DirectAccess、Always On VPN 或Azure ExpressRoute网关,可能会遇到此问题。
  • DNS 解析失败:KMS 客户端无法连接到 DNS 服务器,或者 DNS 服务器无法解析 KMS 主机的地址(或Azure KMS 服务)(Azure VM)。
  • 错误的 KMS 目标:客户端配置为使用特定的 KMS 主机,但 KMS 主机名不正确或无效。
  • SPP 服务问题:SPP 服务本身可能处于停滞状态。

解决方案

若要排查和修复此问题,请使用以下步骤。 若要从此过程中获得最佳结果,请在受影响的计算机上安装 PsPing 工具。 如果你有自承载 KMS 服务器,请同时在该计算机上安装 PsPing 工具。

还应熟悉脚本slmgr。

Important

如果您遇到 Azure 虚拟机 (VM) 的 Windows 激活问题,请参阅 Azure 虚拟机上 Windows 激活问题的故障排除工具。

步骤 1:使用特定 KMS 主机激活

若要绕过自动发现过程,可以使用 slmgr 脚本指定 KMS 主机:

  1. 在客户端上打开管理命令提示符窗口。

  2. 若要清除任何现有的 KMS 主机设置,请运行以下命令:

    cscript c:\windows\system32\slmgr.vbs /ckms
    
  3. 若要指定用于激活的 KMS 主机,请运行以下命令:

    cscript c:\windows\system32\slmgr.vbs /skms <KMSHost_fqdn>:<KMSHost_Port>
    

    注释

    • 在此命令中,<KMSHost_fqdn>表示 KMS 主机的完全限定域名 (FQDN),而 <KMSHost_Port>表示 KMS 主机使用的端口。
    • 若要使用 Azure KMS 服务激活 Azure VM,请对 azkms.core.windows.netKMSHost_fqdn< 使用 >,并对 1688KMSHost_Port 使用 <。
  4. 若要重试以激活,请运行以下命令:

    cscript c:\windows\system32\slmgr.vbs /ato
    
  5. 若要检查问题是否再次出现,请在 PowerShell 命令提示符处运行以下命令:

    Get-WinEvent -FilterHashtable @{LogName='Application'; ProviderName='Security-SPP'; Id=8198} -MaxEvents 1 | Format-List TimeCreated, Message
    

如果激活过程仍生成事件 ID 8198(错误代码 0xC0020017 或 0x8007139F),请转到步骤 2。

步骤 2:检查 VPN、直接访问、强制隧道或类似配置

如果虚拟网络通过网关(强制隧道)路由所有客户端流量,则必须免除 KMS 流量。

  1. 查看隧道配置,并确保激活流量可以直接通过客户端和 KMS 主机之间的端口 1688 传递。

    例如,对于使用 Azure KMS 的 Azure VM,请添加用户定义的路由(UDR),用于将Azure KMS IP 地址的流量直接发送到 Internet。 有关如何为 Azure 配置此豁免的信息,请参阅强制隧道方案中的 Windows 激活失败。

  2. 若要重试激活Windows,请在客户端的命令提示符处运行以下命令:

    cscript c:\windows\system32\slmgr.vbs /ato
    
  3. 若要检查问题是否再次出现,请在 PowerShell 命令提示符处运行以下命令:

    Get-WinEvent -FilterHashtable @{LogName='Application'; ProviderName='Security-SPP'; Id=8198} -MaxEvents 1 | Format-List TimeCreated, Message
    

如果激活过程仍生成事件 ID 8198(错误代码 0xC0020017 或 0x8007139F),请转到步骤 3。

步骤 3:重启 SPP 服务

在某些情况下,SPP 服务本身可能处于停滞状态。

  1. 若要重启 SPP 服务,请在客户端上的 PowerShell 命令提示符处运行以下命令:

    Restart-Service sppsvc -Force
    
  2. 等待 30 秒。

  3. 若要重试激活Windows,请在客户端的命令提示符处运行以下命令:

    cscript c:\windows\system32\slmgr.vbs /ato
    
  4. 若要检查问题是否再次出现,请在 PowerShell 命令提示符处运行以下命令:

    Get-WinEvent -FilterHashtable @{LogName='Application'; ProviderName='Security-SPP'; Id=8198} -MaxEvents 1 | Format-List TimeCreated, Message
    

如果激活过程仍生成事件 ID 8198(错误代码 0xC0020017 或 0x8007139F),请转到步骤 4。

步骤 4:确保激活流量可以在客户端与 KMS 主机之间传递

  1. 在客户端上的命令提示符处运行以下命令:

    psping <KMSHost-ip>:1688
    

    注释

    • 在此命令中, <KMSHost_ip> 表示 KMS 主机的 IP 地址。
    • 如果客户端是Azure VM,并且正在使用 Azure KMS 服务进行激活,请使用 20.118.99.224 或 40.83.235.53 for <KMSHost-ip>。
  2. 如果使用自承载 KMS 主机,请在 KMS 主机上打开管理命令提示符窗口,然后运行以下命令:

    psping <KMSClient-ip>:1688
    

    注释

    在此命令中, <KMSClient_ip> 表示客户端的 IP 地址。

  3. 如果 psping 任一情况下失败,请执行以下步骤:

    1. 对于Azure VM,请检查可能影响 VM 的任何网络安全组(例如网络接口、子网或虚拟网络级别设置的 NSG)。 请确保任何 NSG 都允许在 UDP/TCP 端口 53 上的 VM 和 DNS 服务器之间传输流量。
    2. 请确保任何防火墙(包括客户端上的Windows防火墙)允许客户端与 UDP/TCP 端口 1688 上的 KMS 服务器之间的流量。
    3. 若要验证流量是否已解除阻止,请再次运行 psping 。
  4. 若要重试激活Windows,请在客户端的命令提示符处运行以下命令:

    cscript c:\windows\system32\slmgr.vbs /ato
    
  5. 若要检查问题是否再次出现,请在 PowerShell 命令提示符处运行以下命令:

    Get-WinEvent -FilterHashtable @{LogName='Application'; ProviderName='Security-SPP'; Id=8198} -MaxEvents 1 | Format-List TimeCreated, Message
    

如果激活过程仍生成事件 ID 8198(错误代码 0xC0020017 或 0x8007139F),请转到步骤 5。

步骤 5:检查 DNS 配置

  1. 若要检查 DNS 配置,请在客户端的命令提示符处运行以下命令:

    nslookup <KMSHost_fqdn> <intendedDNS_name>
    

    注释

    • 在此命令中,<KMSHost_fqdn>表示 KMS 主机的 FQDN,intendedDNS_name<>表示客户端应用来联系主机的 DNS 服务器的 FQDN 或 IP 地址。
    • 如果客户端是使用 Azure DNS 服务的 Azure VM,请对 168-63-129-16intendedDNS_name< 使用 >。
  2. 如果客户端是Azure VM,并且使用的是 Azure KMS 服务,并且 nslookup 命令失败,请参阅以下文章来排查 DNS 配置问题:

  3. 在 KMS 主机上,打开管理命令提示符窗口,然后运行以下命令:

    ipconfig /all
    

    此命令的输出应类似于以下示例:

    DNS Servers . . . . . . . . . . . : 168.63.129.16
    
    DNS Servers . . . . . . . . . . . : 10.0.3.5
                                        10.0.3.4
    

    注释

    在此示例中,168.63.129.16是AZURE VM 连接到Azure DNS基础结构时使用的 IP 地址。 其他 IP 地址表示自定义 DNS 服务器。

  4. 验证每个 DNS 服务器地址是否正确。

    Important

    对 Azure VM 使用自定义 DNS 服务器时,请不要在 VM 本身上配置 DNS 服务器设置。 在网络接口或虚拟网络级别指定 DNS 服务器。

  5. 如果 DNS 服务器地址列表为空或不包含正确的地址,请参阅以下文章了解详细信息:

  6. 如果更改任何 DNS 设置,请重启 KMS 主机。

  7. KMS 主机重启后,打开管理命令提示符窗口,然后运行以下命令:

    ipconfig /flushdns
    

    此命令刷新并重新生成 DNS 缓存。

  8. 若要重试激活Windows,请在客户端的命令提示符处运行以下命令:

    cscript c:\windows\system32\slmgr.vbs /ato
    
  9. 若要检查问题是否再次出现,请在 PowerShell 命令提示符处运行以下命令:

    Get-WinEvent -FilterHashtable @{LogName='Application'; ProviderName='Security-SPP'; Id=8198} -MaxEvents 1 | Format-List TimeCreated, Message
    

如果激活过程仍生成事件 ID 8198(错误代码 0xC0020017 或 0x8007139F),请联系Microsoft 支持部门。

References

资料来源与适用范围

资料来源
微软官方中文故障文档
适用范围
适用于物理计算机、本地虚拟机(VM)和Azure VM。
内容语言
中文;命令、路径和错误标识保留技术原文
本地收录日期
2026-10-26
授权说明
CC BY 4.0

正文与所需资源由本站本地存储。查看来源及更新记录 ↗

请按适用版本和实际日志确认原因;本站没有对每一种系统或设备逐项执行文中的操作。