为什么我的 EC2 Windows 实例上的 Windows 激活会失败?

上次更新时间:2021 年 7 月 13 日

我的 Amazon Elastic Compute Cloud (Amazon EC2) Windows 实例上收到了“Windows 激活失败”消息。如何修复此问题?

简短描述

Windows 实例在 Amazon Web Services (AWS) 上使用 Microsoft Key Management Service (Microsoft KMS) 进行激活。如果您的实例无法访问 Microsoft KMS 服务器,您可能会收到 Windows 激活错误消息。或者,Microsoft KMS 客户端配置可能存在问题。

您可以使用 AWS Systems Manager Automation 文档或按照手动流程激活 Windows。

解决方法

使用 Systems Manager Automation 文档激活 Windows

AWSSupport-ActivateWindowsWithAmazonLicense Automation 文档会使用 Amazon 提供的许可激活 Amazon EC2 Windows 实例。自动化将为您的实例检查 Windows 的当前状态,然后在状态处于非活动状态时激活 Windows。

注意:此解决方案不适用于自带许可 (BYOL) Windows 实例。要使用您自己的许可证,请参阅 AWS 上的 Microsoft 许可

1.    打开 AWS Systems Manager 控制台。请确保选择与需要激活 Windows 的 EC2 Windows 实例相同的区域。

2.    从导航窗格选择 Automation(自动化),然后选择 Execute automation(执行自动化)。

3.    在搜索字段中,输入 ActivateWindowsWithAmazonLicense。选择 AWSSupport-ActivateWindowsWithAmazonLicense 自动化文档,然后选择 Next(下一步)。

4.    对于 Execute automation document(执行 Automation 文档),选择 Simple execution(简单执行)。

5.    对于 Input parameters(输入参数),打开 Show interactive instance picker(显示交互式实例选取器)。

6.    选择您的 EC2 实例。

注意:如果您未在列表中看到实例,则该实例尚未启用 Systems Manager。查看使用 Systems Manager 管理 Amazon EC2 实例的前提条件

如果您不想启用 Systems Manager,或者如果实例未提供在输入参数中,请关闭 Show interactive instance picker(显示交互式实例选取器)。对于 InstanceID,请输入受损 EC2 实例的 ID。对于 AllowOffline,选择 True

重要提示:如果您将 AllowOffline 设置为 True,则 EC2 实例将停止并重启。实例存储卷中的数据将会丢失。如果您未使用弹性 IP 地址,则公有 IP 地址将发生更改。

7.    选择 Execute(执行)。

8.    要监控执行进度,请打开 Systems Manger 控制台,然后从导航窗格选择 Automation(自动化)。选择运行自动化,然后查看 Executed steps(已执行的步骤)。要查看自动化输出,请展开 Outputs(输出)。

手动激活 Windows

1.    更新 EC2Config,或运行 EC2Launch 初始化脚本。

对于 Windows Server 2012 R2 及更低版本请更新 EC2Config,然后重启实例。

对于 Windows Server 2016 及更高版本:请运行以下命令设置到 Microsoft KMS 服务器的正确路由:

PS C:>Import-Module "C:\ProgramData\Amazon\EC2-Windows\Launch\Module\Ec2Launch.psd1"
PS C:>Add-Routes
PS C:>Set-ActivationSettings
PS C:>slmgr /ato

如果 Windows 仍未激活,则继续执行步骤 2。

2.    Microsoft KMS 作为 TCP 流量在端口 1688 上运行。请务必添加异常,以允许控制您的实例出站连接的任何防火墙或安全软件上的 Microsoft KMS 流量。

3.    设置您的 Windows KMS 安装密钥。首先,为您的操作系统版本识别正确的 Microsoft KMS 客户端安装密钥。有关更多信息,请参阅 Microsoft 网站上的 KMS 客户端安装密钥。然后以管理员身份运行以下命令:

slmgr.vbs /ipk <KMSSetupKey>

4.    设置 Windows KMS 计算机的 IP 地址。源自 VM Import 或旧版 EC2-Classic 实例的实例可能没有 Microsoft KMS 服务器的正确 IP 地址。以管理员身份运行以下命令:

slmgr.vbs /skms 169.254.169.250:1688

5.    要激活 Windows,请以管理员身份运行以下命令:

slmgr /ato

6.    如果上述步骤激活失败,请检查从实例到 Microsoft KMS 服务器的网络通信。为此,请从实例向 Microsoft KMS 服务器执行 telnet。然后,打开 PowerShell 并输入以下命令:

Test-netconnection 169.254.169.250 -Port 1688
Test-netconnection 169.254.169.251 -Port 1688

验证连接状态输出为 TcpTestSuccessed。如果连接状态输出为 False,请继续执行步骤 7。

7.    验证以下注册表项具有正确的 Microsoft KMS 值:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows
NT\CurrentVersion\SoftwareProtectionPlatform
KeyManagementServiceName - 169.254.169.250 or 169.254.169.251
KeyManagementServicePort - 1688

8.    重新运行步骤 6 中的测试。如果连接状态输出仍为 False,则验证 EC2 实例上的时间同步。有关更多信息,请参阅设置 Windows 实例的时间


这篇文章对您有帮助吗?


您是否需要账单或技术支持?