ECS实例使用的Windows系统激活失败如何解决?

本文主要介绍ECS实例使用的Windows系统激活失败的原因以及解决方案。

可能原因

Windows系统ECS实例默认配置激活脚本,正常情况下,实例能够与KMS服务器通讯来激活系统。但是可能因为以下原因导致激活失败:

Software Protection异常导致激活失败

问题现象

使用slmgr -ato命令激活Windows系统时,系统出现以下错误。

运行“slui.exe 0x2a 0x80070002”以显示错误文本。

系统显示类似如下。

问题原因

检测发现Software Protection未启动,Software Protection未开启会影响系统激活。

解决方案

重要

修改注册表需要对Windows操作系统有一定了解,为了避免注册表误操作带来的系统问题或数据丢失,修改注册表前,建议您务必对系统盘和数据盘创建快照。具体操作,请参见创建一个云盘快照

  1. 远程登录到Windows系统的ECS实例。

    具体操作,请参见连接Windows实例

  2. 单击左下角服务器管理器图标,在页面右上角选择工具>服务,找到并双击Software Protection

  3. 在弹出的窗口选择启动

    说明

    如果Software Protection服务启动异常或者启动时服务丢失,按照以下方法来重建Software Protection服务。

    1. 运行regedit命令,打开注册表,定位到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\sppsvc,右键选择导出,备份当前文件到C:\sppsvc_bak.reg

    2. 在相同版本的正常ECS实例上采用上述方法,将HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\sppsvc导出为“sppsvc_good.reg”。

    3. 将上一步骤中得到的“sppsvc_good.reg”文件拷贝到问题机器,然后双击此文件。当系统提示您是否确认导入注册表时,单击。之后会有提示说明已经成功导入注册表。启动服务后再次尝试激活。

    4. 如果失败,请将双击之前备份的C:\sppsvc_bak.reg文件重新导入到系统。

网络异常导致激活失败

问题现象

系统桌面右下角出现“Windows 不是正版”的提示。根据如何使用KMS域名激活VPC网络中的Windows实例进行手动激活时,出现以下错误提示。

0xC004F074 软件授权服务报告无法激活计算机,密钥管理服务(KMS)不可用。

系统显示类似如下。

问题原因

出现这个报错一般都是由于服务器到KMS之间的网络存在问题,导致服务器无法跟KMS进行通讯。网络存在问题可能是由于Windows系统的ECS实例中系统防火墙、IP安全策略或者其他网络安全管理软件阻断了服务器与ECS激活服务器之间的通信所导致的。

说明

ECS激活服务器使用kms.cloud.aliyuncs.com域名、TCP协议以及1688端口。

解决方案

  1. C:\Windows\System32\drivers\etc\hosts文件中添加<ECS激活服务器IP地址> kms.cloud.aliyuncs.com,确保ECS激活服务器的IP地址能够解析。

    说明

    可以通过ping kms.cloud.aliyuncs.com命令获取ECS激活服务器IP地址。

  2. 查看系统防火墙是否对kms.cloud.aliyuncs.com的1688 TCP端口做了拦截。如果您的防火墙内设置了拦截1688 TCP端口的出入站规则,您需要右键选择删除该规则。

    查看出入站规则,请参见设置Windows实例远程连接防火墙中的添加端口规则章节。

  3. 查看是否配置了IP安全策略,阻断了对kms.cloud.aliyuncs.com解析出的IP的访问。如果有相关策略,对该策略进行删除。

    查看IP安全策略,请参见服务器ping外网提示一般故障处理方法查看是否设置了IP安全策略章节。

  4. 查看是否有其他安全软件对kms.cloud.aliyuncs.com的1688 TCP端口的访问做了拦截。

  5. 执行route print命令查看服务器内部的路由是否正常,如果缺失内网路由需要手动添加。

  6. 完成上面的排查后,在实例中执行telnet kms.cloud.aliyuncs.com命令,完成以后再尝试重新激活实例。

服务器时钟不同步导致激活失败

问题现象

使用slmgr -ato命令激活Windows系统时,提示激活失败。

问题原因

服务器时钟需要跟KMS服务器的时钟一致,如果时钟出现偏差也会导致激活失败。

解决方案

您可以在系统桌面右下角确认当前系统时间是否正常。如果确认系统时间明显有很大偏差,您可以在系统桌面右下角手工修改系统时间配置,也可以通过以下命令同步时钟,同步完成以后再重新激活。

net start W32Time
w32tm /resync

系统返回类似如下。

磁盘空间满了导致激活失败

问题现象

尝试激活的时候,提示“找不到产品”。

问题原因

出现这个报错可能是服务器的系统盘空间满了,导致没有足够的空间用于激活。

解决方案

清理C盘释放磁盘空间,再次手动激活即可。

激活码不正确导致激活失败

问题现象

激活的时候报错,错误代码为“C004F015”。

问题原因

这种情况可能是由于系统使用的激活码跟系统的版本不匹配,一般都是人为激活修改导致的。

解决方案

  1. 参见微软官方信息,根据操作系统的实际版本来查询激活码。

  2. 执行slmgr /ipk <$Setup_Key>替换匹配的激活码,然后执行slmgr -ato命令激活系统。

    说明

    <$Setup_Key>为系统激活码。