跳至内容

如何解决我的 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)错误。

使用 Systems Manager Automation 文档激活 Windows

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

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

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

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

要监控 Systems Manager 的进度,请完成以下步骤:

  1. 打开 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 重启时,它会自动重置操作系统 (OS) 级别的路由。

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

  5. 从 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. 再次运行 Test-netconnection 命令。如果连接状态输出仍为 False,请检查 EC2 实例上的 Amazon Time Sync Service。有关详细信息,请参阅在 EC2 实例上实现精确时钟和时间同步

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

如果您从 Amazon Elastic Block Store (Amazon EBS) 快照启动 Windows 实例,则可能会收到以下错误消息:

“Windows 尝试激活时出现问题。错误代码 0xC004F074”

要解决此错误,请参阅“无法激活 Windows”

相关信息

EC2Config 设置文件

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

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