Amazon Elastic Compute Cloud
Windows 实例用户指南

解决连接到 Windows 实例的问题

以下是在尝试连接到 Windows 实例时可能遇到的问题和看到的错误消息。

远程桌面无法连接到远程计算机

尝试以下操作以解决与连接实例有关的问题:

  • 确认您使用的是正确的公有 DNS 主机名。(在 Amazon EC2 控制台中,请选择实例,并在详细信息窗格中查看 Public DNS (IPv4) (公有 DNS (IPv4))。) 如果您的实例是在 VPC 中,并且您没有看到公有 DNS 名称,则必须启用 DNS 主机名。有关更多信息,请参阅 Amazon VPC 用户指南中的在您的 VPC 中使用 DNS

  • 验证您的实例是否具有公有 IPv4 地址。如果没有,您可以将弹性 IP 地址与您的实例关联。有关更多信息,请参阅 弹性 IP 地址

  • 要使用 IPv6 地址连接到您的实例,请检查本地计算机是否具有 IPv6 地址以及是否已配置为可使用 IPv6。如果您从 Windows Server 2008 SP2 AMI 或更早版本中启动了实例,则实例不会自动配置为可识别分配给实例的 IPv6 地址。有关更多信息,请参阅Amazon VPC 用户指南中的在实例中配置 IPv6

  • 确认您的安全组具有允许 RDP 访问的规则。有关更多信息,请参阅 创建安全组

  • 如果您输入复制的密码,然后收到错误消息 Your credentials did not work,请尝试根据系统提示手动键入密码。可能是复制密码时丢失了字符或添加了额外空格。

  • 确认实例已通过状态检查。有关更多信息,请参阅实例的状态检查通过故障状态检查排查实例故障Amazon EC2 用户指南(适用于 Linux 实例))。

  • 确认子网的路由表具有这样一个路由,该路由将发往 VPC 外部的所有流量发送到该 VPC 的 Internet 网关。有关更多信息,请参阅 Amazon VPC 用户指南 中的创建自定义路由表(Internet 网关)。

  • 确认 Windows 防火墙或其他防火墙软件没有阻止到实例的 RDP 流量。我们建议您禁用 Windows 防火墙,使用安全组规则来控制对实例的访问。您可以使用 AWSSupport-TroubleshootRDP使用 SSM 代理禁用 Windows 防火墙配置文件。要在没有针对 AWS Systems Manager 配置的 Windows 实例上禁用 Windows 防火墙,请使用 AWSSupport-ExecuteEC2Rescue,或者使用以下手动步骤:

手动步骤
  1. 停止受影响的实例并分离其根卷。

  2. 在受影响的实例所在的可用区中启动临时实例。

    警告

    如果您的临时实例与原始实例基于相同的 AMI,则您必须完成额外的步骤,否则在您恢复原始实例的根卷之后,由于磁盘签名冲突,您将无法启动原始实例。或者,可以为临时实例选择不同的 AMI。例如,如果原始实例使用适用于 Windows Server 2008 R2 的 AWS Windows AMI,则使用适用于 Windows Server 2012 的 AWS Windows AMI 来启动临时实例。

  3. 将根卷从受影响的实例附加到此临时实例。连接到临时实例,打开 Disk Management (磁盘管理) 实用工具,将驱动器联机。

  4. 打开 Regedit,选择 HKEY_LOCAL_MACHINE。从 File 菜单中,选择 Load Hive。选择驱动器,打开文件 Windows\System32\config\SYSTEM,在出现提示时指定键名 (您可以使用任何名称)。

  5. 选择刚加载的键并导航至 ControlSet001\Services\SharedAccess\Parameters\FirewallPolicy。对于名称格式为 xxxxProfile 的各个键,请选择该键并将 EnableFirewall 从 1 更改为 0。再次选择该键,在 File 菜单中,选择 Unload Hive

  6. (可选) 如果您的临时实例与原始实例基于相同的 AMI,则您必须完成以下步骤,否则在您恢复原始实例的根卷之后,由于磁盘签名冲突,您将无法启动原始实例。

    警告

    以下过程介绍了如何使用注册表编辑器编辑 Windows 注册表。 如果您不熟悉 Windows 注册表或不知道如何使用注册表编辑器安全地做出更改,请参阅配置注册表

    1. 打开命令提示,键入 regedit.exe,并按“Enter”键。

    2. 注册表编辑器中,从上下文菜单中选择 HKEY_LOCAL_MACHINE(右击),然后选择“查找”

    3. 键入 Windows Boot Manager,然后选择“查找下一个”

    4. 选择名为 11000001 的密钥。此密钥与您在之前步骤中找到的密钥处于同一层级。

    5. 在右侧窗格中,选择 Element,然后从上下文菜单 (单击右键) 中选择 Modify

    6. 在数据中的偏移 0x38 处查找四字节磁盘签名。颠倒这些字节以创建磁盘签名并将其记下。例如,由以下数据表示的磁盘签名为 E9EB3AA5

      ... 0030 00 00 00 00 01 00 00 00 0038 A5 3A EB E9 00 00 00 00 0040 00 00 00 00 00 00 00 00 ...
    7. 在命令提示符窗口中,运行以下命令以启动 Microsoft DiskPart。

      diskpart
    8. 运行以下 DiskPart 命令以选择卷。(您可以使用 Disk Management (磁盘管理) 实用工具来验证磁盘编号为 1。)

      DISKPART> select disk 1 Disk 1 is now the selected disk.
    9. 运行以下 DiskPart 命令以获取磁盘签名。

      DISKPART> uniqueid disk Disk ID: 0C764FA8
    10. 如果上一步骤中显示的磁盘签名与前面记下的 BCD 中的磁盘签名不匹配,请使用以下 DiskPart 命令更改磁盘签名以使其匹配:

      DISKPART> uniqueid disk id=E9EB3AA5
  7. 使用 Disk Management (磁盘管理) 实用工具,将驱动器脱机。

    注意

    如果临时实例运行的操作系统与受影响实例相同,则驱动器将自动脱机,因此您无需手动使其脱机。

  8. 将该卷从临时实例分离。如果您不再使用临时实例,则可以将其终止。

  9. 通过将受影响的实例的根卷附加为 /dev/sda1 将其还原。

  10. 启动实例。

使用 macOS RDP 客户端时出错

如果您使用 Microsoft 网站的远程桌面连接客户端连接到 Windows Server 2012 R2 实例,则可能会收到以下错误:

Remote Desktop Connection cannot verify the identity of the computer that you want to connect to.

从 Mac 应用商店下载 Microsoft 远程桌面应用程序,然后使用该应用程序连接到实例。

RDP 显示黑屏而不是桌面

请尝试以下操作解决该问题:

  • 检查控制台输出有无其他信息。要使用 Amazon EC2 控制台获取您的实例的控制台输出,请选择该实例,然后依次选择 Actions (操作)Instance Settings (实例设置)Get System Log (获取系统日志)

  • 确认您正在运行最新版本的 RDP 客户端。

  • 尝试使用 RDP 客户端的默认设置。有关更多信息,请参阅删除会话环境

  • 如果您要使用远程桌面连接,请尝试使用 /admin 选项,通过以下方式将其启动。

    mstsc /v:instance /admin
  • 如果服务器正在运行全屏应用程序,则它可能会停止响应。使用 Ctrl+Shift+Esc 以启动 Windows 任务管理器,然后关闭应用程序。

  • 如果过度使用服务器,则服务器可能已停止响应。要使用 Amazon EC2 控制台来监控实例,请选择实例,然后选择 Monitoring (监控) 选项卡。如果需要将实例类型更改为更大大小,请参阅更改实例类型

无法使用非管理员用户账户远程登录到实例

如果无法通过非管理员用户账户远程登录到 Windows 实例,请确保您为该用户授予了本地登录的权限。请参阅为用户或组授予本地登录到域中的域控制器的权限

使用 AWS Systems Manager 解决远程桌面问题

您可以使用 AWS Systems Manager 解决使用 RDP 连接到 Windows 实例的问题。

AWSSupport-TroubleshootRDP

利用 AWSSupport-TroubleshootRDP 自动化文档,用户可以检查或修改目标实例上可影响远程桌面协议 (RDP) 连接的常规设置,如 RDP 端口网络层身份验证 (NLA)Windows 防火墙配置文件。默认情况下,此文档读取和输出这些设置的值。

AWSSupport-TroubleshootRDP 自动化文档只能用于可与 AWS Systems Manager 配合使用的实例。这些实例也称为托管实例。有关更多信息,请参阅 AWS Systems Manager 用户指南 中的在混合环境中设置 AWS Systems Manager。您的实例必须已安装 AWS Systems Manager SSM 代理并且已将具有权限的 IAM 角色附加到 Systems Manager。您必须更改默认参数值才能修改目标实例上的常用 RDP 设置。

使用 AWSSupport-TroubleshootRDP 文档进行故障排除

  1. 登录 Systems Manager 控制台

  2. 确认您与受损实例位于同一区域。

  3. 打开 AWSSupport-TroubleshootRDP 文档。

  4. Execution Mode (执行模式) 中,选择 Execute the entire automation at once (一次执行整个自动化)

  5. Input parameters (输入参数)InstanceId 字段中,启用 Show interactive instance picker (显示交互式实例选取器)

  6. 选择您的 Amazon EC2 实例。

    注意

    如果您未在列表中看到您的实例,这表明它还未启用 Systems Manager。有关信息,请参阅 AWS Systems Manager 用户指南 中的为 Systems Manager 创建实例配置文件将 IAM 实例配置文件附加到 Amazon EC2 实例

  7. 检查示例,然后选择执行自动化

  8. 要监控执行进度,请在 Execution (执行) 状态中,等待状态从 Pending (待处理) 变为 Success (成功)。展开 Outputs (输出) 以查看结果。要查看各个步骤的输出,请在 Executed Steps (执行步骤) 中,选择 Step ID (步骤 ID)

AWSSupport-TroubleshootRDP 示例

以下示例介绍如何使用 AWSSupport-TroubleshootRDP 完成常见的故障排除任务。您可以使用示例 AWS CLI start-automation-execution 命令或提供的 AWS 管理控制台 链接。

例 示例:检查当前的 RDP 状态

AWS CLI:

aws ssm start-automation-execution --document-name "AWSSupport-TroubleshootRDP" --parameters "InstanceId=instance_id" --region region_code

AWS Systems Manager 控制台:

https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootRDP?region=region#documentVersion=$LATEST

例 示例:禁用 Windows 防火墙

AWS CLI:

aws ssm start-automation-execution --document-name "AWSSupport-TroubleshootRDP" --parameters "InstanceId=instance_id,Firewall=Disable" --region region_code

AWS Systems Manager 控制台:

https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootRDP?region=region_code#documentVersion=$LATEST&Firewall=Disable

例 示例:禁用网络级别身份验证

AWS CLI:

aws ssm start-automation-execution --document-name "AWSSupport-TroubleshootRDP" --parameters "InstanceId=instance_id,NLASettingAction

AWS Systems Manager 控制台:

https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootRDP?region=region_code#documentVersion

例 示例:将 RDP 服务启动类型设置为自动并启动 RDP 服务

AWS CLI:

aws ssm start-automation-execution --document-name "AWSSupport-TroubleshootRDP" --parameters "InstanceId=instance_id,RDPServiceStartupType=Auto, RDPServiceAction=Start" --region region_code

AWS Systems Manager 控制台:

https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootRDP?region=region_code#documentVersion=$LATEST&RDPServiceStartupType=Auto&RDPServiceAction=Start

例 示例:恢复默认 RDP 端口 (3389)

AWS CLI:

aws ssm start-automation-execution --document-name "AWSSupport-TroubleshootRDP" --parameters "InstanceId=instance_id,RDPPortAction=Modify" --region region_code

AWS Systems Manager 控制台:

https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootRDP?region=region_code#documentVersion=$LATEST&RDPPortAction=Modify

例 示例:允许远程连接

AWS CLI:

aws ssm start-automation-execution --document-name "AWSSupport-TroubleshootRDP" --parameters "InstanceId=instance_id,RemoteConnections=Enable" --region region_code

AWS Systems Manager 控制台:

https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootRDP?region=region_code#documentVersion=$LATEST&RemoteConnections=Enable

AWSSupport-ExecuteEC2Rescue

AWSSupport-ExecuteEC2Rescue 自动化文档使用 使用 EC2Rescue for Windows Server 自动排查并修复 EC2 实例连接和 RDP 问题。有关更多信息,请参阅在无法访问的实例上运行 EC2Rescue 工具

AWSSupport-ExecuteEC2Rescue 自动化文档需要停止并重新启动实例。Systems Manager Automation 将停止实例并创建 Amazon 系统映像 (AMI)。实例存储卷中存储的数据将会丢失。如果未使用弹性 IP 地址,公有 IP 地址将发生变化。有关更多信息,请参阅 AWS Systems Manager 用户指南 中的在无法访问的实例上运行 EC2Rescue 工具

使用 AWSSupport-ExecuteEC2Rescue 文档进行故障排除

  1. 打开 Systems Manager 控制台

  2. 确认您与受损 Amazon EC2 实例位于同一区域。

  3. 打开 AWSSupport-ExecuteEC2Rescue 文档。

  4. Execution Mode (执行模式) 中,选择 Execute the entire automation at once (一次执行整个自动化)

  5. Input parameters (输入参数) 部分的 UnreachableInstanceId 中,输入无法访问的实例的 Amazon EC2 实例 ID。

  6. (可选)对于 LogDestination,请输入 Amazon Simple Storage Service (Amazon S3) 存储桶名称(如果需要收集操作系统日志以便排查 Amazon EC2 实例问题)。日志会自动上传到此指定存储桶。

  7. 选择执行自动化

  8. 要监控执行进度,请在 Execution (执行) 状态中,等待状态从 Pending (待处理) 变为 Success (成功)。展开 Outputs (输出) 以查看结果。要查看各个步骤的输出,请在 Executed Steps (执行步骤) 中,选择 Step ID (步骤 ID)