如何解决我的 Amazon EC2 Windows 实例上的 Windows 激活失败消息?

2 分钟阅读
0

我在 Amazon Elastic Compute Cloud(Amazon EC2)Windows 实例上收到了 Windows 激活失败消息。

简短描述

Windows 实例使用 AWS 上的 Microsoft 密钥管理服务(Microsoft KMS)进行激活。如果您的实例无法访问 Microsoft KMS 服务器,则您可能会收到一条 Windows 激活错误消息。有关详细信息,请参阅 Microsoft Learn 网站上的 Understanding KMS

解决方法

要解决 Amazon EC2 实例上的 Windows 激活失败问题,请完成以下操作之一:

  • 使用 AWS Systems Manager Automation 文档激活 Windows。
  • 手动激活 Windows。
  • 解决“Unable to Activate Windows”(无法激活 Windows)错误。

使用 AWS Systems Manager Automation 文档激活 Windows

AWSSupport-ActivateWindowsWithAmazonLicense 自动化文档使用 Amazon 提供的许可证激活 Amazon EC2 Windows 实例。该自动化会检查实例的当前 Windows 状态,如果状态为非活动状态,则会激活 Windows。

注意: 您不能使用 AWSSupport-ActivateWindowsWithAmazonLicense 自动化文档来激活自带许可 (BYOL) Windows 实例。要使用您自己的许可证,请参阅 AWS 上的 Microsoft 许可

要使用 AWS Systems Manager Automation 文档激活 Windows,请完成以下步骤:

  1. 打开 AWS Systems Manager 控制台。请务必选择与需要激活的 Amazon EC2 Windows 实例相同的 AWS 区域。
  2. 在导航窗格中选择 Automation(自动化),然后选择 Execute automation(执行自动化)。
  3. 在搜索字段中,输入 ActivateWindowsWithAmazonLicense
  4. 选择 AWSSupport-ActivateWindowsWithAmazonLicense Automation 文档,然后选择下一步
  5. 对于执行自动化文档,选择简单执行
  6. 对于 Input parameters(输入参数),打开 Show interactive instance picker(显示交互式实例选取器)。
  7. 选择您的 Amazon EC2 实例,然后继续执行步骤 9。如果在列表中未看到您的实例,请继续执行步骤 8。
  8. 为您的 Amazon EC2 实例配置 AWS Systems Manager
    -或-
    如果无法配置 AWS Systems Manager,或者 Input parameters(输入参数)中没有该实例,请关闭 Show interactive instance picker(显示交互式实例选取器)。
    对于 InstanceID,输入您的 Amazon EC2 实例的 ID。
    对于 AllowOffline,选择 True
    **注意:**如果将 AllowOffline 设置为 True,则您的 Amazon EC2 将停止然后重启。Amazon EC2 重启后,您的实例存储卷中的数据将被删除。此外,如果不使用弹性 IP 地址,则公有 IP 地址将发生变化。
  9. 选择 Execute(执行)。

要监控 AWS Systems Manager 的进度,请完成以下操作:

  1. 打开 AWS Systems Manager 控制台
  2. 在导航窗格中,选择 Automation(自动化)。
  3. 选择正在运行的自动化,然后选择 Executed steps(已执行步骤)。
  4. 要查看自动化的输出,请选择 Outputs(输出)。

手动激活 Windows

根据您的实例使用的 Windows Server 版本和安装的 Amazon EC2 配置工具,完成以下操作:

Windows Server 2016 或 2019

  1. 确认已安装最新版本的 EC2Launch v1

  2. 以管理员身份打开 PowerShell。

  3. 导入 EC2Launch 模块:

    Import-Module "C:\ProgramData\Amazon\EC2-Windows\Launch\Module\Ec2Launch.psd1"
  4. 添加路由:

    Add-Routes
  5. 设置激活设置:

    Set-ActivationSettings
  6. 激活 Windows:

    slmgr /ato

Windows Server 2022 或安装了 EC2Launch v2 的实例

  1. 确认已安装最新版本的 EC2Launch v2
    **注意:**默认情况下,使用 Windows Server 2022 的实例上安装了 EC2Launch v2。

  2. 以管理员身份打开 PowerShell。

  3. 重启 EC2Launch v2:

    Net Restart "Amazon EC2Launch"

    **注意:**当 EC2Launch v2 重启时,它会自动重置操作系统级别的路由。

  4. 如果 Windows 未激活,请检查从实例到 Microsoft KMS 服务器的网络通信。

  5. 从 Amazon EC2 实例对 Microsoft KMS 服务器执行 telnet,然后打开 PowerShell。

  6. 运行以下命令:

    Test-netconnection 169.254.169.250 -Port 1688  
    Test-netconnection 169.254.169.251 -Port 1688
  7. 确认连接状态输出是否为 TcpTestSuccessed=True。如果连接状态输出为 False,请验证以下注册表项的 Microsoft KMS 值是否正确:

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

    **注意:**您也可以输入 169.254.169.251 作为 KeyManagementServiceName 值。

  8. 重复步骤 6。如果连接状态输出仍为 False,请检查 Amazon EC2 实例上的 Amazon Time Sync Service

解决“Unable to Activate Windows”(无法激活 Windows)错误

如果您从 Amazon Elastic Block Store (Amazon EBS) 快照启动 Windows 实例,则您可能会收到错误“A problem occurred when Windows tried to activate.Error Code 0xC004F074”(Windows 尝试激活时出现问题。错误代码 0xC004F074)。要解决此错误,请参阅“Unable to activate Windows”(无法激活 Windows)。

**注意:**仅 Linux 实例支持 Amazon EBS 快照。

相关信息

EC2Config 设置文件

在 EC2 Windows 实例上升级半虚拟化驱动程序

如何排查 EC2 Windows 实例的时间问题?