本文主要介绍ECS实例使用的Windows系统激活失败的原因以及解决方案。
可能原因
Windows系统ECS实例默认配置激活脚本,正常情况下,实例能够与KMS服务器通讯来激活系统。但是可能因为以下原因导致激活失败:
Software Protection异常导致激活失败
问题现象
使用slmgr -ato
命令激活Windows系统时,系统出现以下错误。
运行“slui.exe 0x2a 0x80070002”以显示错误文本。
系统显示类似如下。
问题原因
检测发现Software Protection未启动,Software Protection未开启会影响系统激活。
解决方案
修改注册表需要对Windows操作系统有一定了解,为了避免注册表误操作带来的系统问题或数据丢失,修改注册表前,建议您务必对系统盘和数据盘创建快照。具体操作,请参见创建一个云盘快照。
远程登录到Windows系统的ECS实例。
具体操作,请参见连接Windows实例。
单击左下角服务器管理器图标,在页面右上角选择工具>服务,找到并双击Software Protection。
在弹出的窗口选择启动。
说明如果Software Protection服务启动异常或者启动时服务丢失,按照以下方法来重建Software Protection服务。
运行
regedit
命令,打开注册表,定位到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\sppsvc
,右键选择导出,备份当前文件到C:\sppsvc_bak.reg
。在相同版本的正常ECS实例上采用上述方法,将
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\sppsvc
导出为“sppsvc_good.reg”。将上一步骤中得到的“sppsvc_good.reg”文件拷贝到问题机器,然后双击此文件。当系统提示您是否确认导入注册表时,单击是。之后会有提示说明已经成功导入注册表。启动服务后再次尝试激活。
如果失败,请将双击之前备份的
C:\sppsvc_bak.reg
文件重新导入到系统。
网络异常导致激活失败
问题现象
系统桌面右下角出现“Windows 不是正版”的提示。根据如何使用KMS域名激活VPC网络中的Windows实例进行手动激活时,出现以下错误提示。
0xC004F074 软件授权服务报告无法激活计算机,密钥管理服务(KMS)不可用。
系统显示类似如下。
问题原因
出现这个报错一般都是由于服务器到KMS之间的网络存在问题,导致服务器无法跟KMS进行通讯。网络存在问题可能是由于Windows系统的ECS实例中系统防火墙、IP安全策略或者其他网络安全管理软件阻断了服务器与ECS激活服务器之间的通信所导致的。
ECS激活服务器使用kms.cloud.aliyuncs.com域名、TCP协议以及1688端口。
解决方案
在C:\Windows\System32\drivers\etc\hosts文件中添加<ECS激活服务器IP地址> kms.cloud.aliyuncs.com,确保ECS激活服务器的IP地址能够解析。
说明可以通过
ping kms.cloud.aliyuncs.com
命令获取ECS激活服务器IP地址。查看系统防火墙是否对kms.cloud.aliyuncs.com的1688 TCP端口做了拦截。如果您的防火墙内设置了拦截1688 TCP端口的出入站规则,您需要右键选择删除该规则。
查看出入站规则,请参见设置Windows实例远程连接防火墙中的添加端口规则章节。
查看是否配置了IP安全策略,阻断了对kms.cloud.aliyuncs.com解析出的IP的访问。如果有相关策略,对该策略进行删除。
查看IP安全策略,请参见服务器ping外网提示一般故障处理方法中查看是否设置了IP安全策略章节。
查看是否有其他安全软件对kms.cloud.aliyuncs.com的1688 TCP端口的访问做了拦截。
执行
route print
命令查看服务器内部的路由是否正常,如果缺失内网路由需要手动添加。完成上面的排查后,在实例中执行
telnet kms.cloud.aliyuncs.com
命令,完成以后再尝试重新激活实例。
服务器时钟不同步导致激活失败
问题现象
使用slmgr -ato
命令激活Windows系统时,提示激活失败。
问题原因
服务器时钟需要跟KMS服务器的时钟一致,如果时钟出现偏差也会导致激活失败。
解决方案
您可以在系统桌面右下角确认当前系统时间是否正常。如果确认系统时间明显有很大偏差,您可以在系统桌面右下角手工修改系统时间配置,也可以通过以下命令同步时钟,同步完成以后再重新激活。
net start W32Time
w32tm /resync
系统返回类似如下。
磁盘空间满了导致激活失败
问题现象
尝试激活的时候,提示“找不到产品”。
问题原因
出现这个报错可能是服务器的系统盘空间满了,导致没有足够的空间用于激活。
解决方案
清理C盘释放磁盘空间,再次手动激活即可。
激活码不正确导致激活失败
问题现象
激活的时候报错,错误代码为“C004F015”。
问题原因
这种情况可能是由于系统使用的激活码跟系统的版本不匹配,一般都是人为激活修改导致的。
解决方案
参见微软官方信息,根据操作系统的实际版本来查询激活码。
执行
slmgr /ipk <$Setup_Key>
替换匹配的激活码,然后执行slmgr -ato
命令激活系统。说明<$Setup_Key>为系统激活码。