

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# `AWSSupport-EnableWindowsEC2SerialConsole`
<a name="automation-enable-windows-ec2-serial-console"></a>

 **描述** 

 该运行手册`AWSSupport-EnableWindowsEC2SerialConsole`可帮助您在亚马逊 EC2 Windows 实例上启用亚马逊 EC2 串行控制台、特殊管理控制台 (SAC) 和启动菜单。借助 Amazon Elastic Compute Cloud (Amazon EC2) 串行控制台功能，您可以访问亚马逊 EC2 实例的串行端口，以解决启动、网络配置和其他问题。运行手册自动执行在处于运行状态并由管理的实例以及处于停止状态或未由 AWS Systems Manager管理的实例上启用该功能所需的步骤。 AWS Systems Manager

 **如何工作？** 

 `AWSSupport-EnableWindowsEC2SerialConsole`自动化运行手册有助于在运行微软 Windows Server 的亚马逊 EC2 实例上启用 SAC 和启动菜单。对于处于运行状态且由管理的实例 AWS Systems Manager，运行手册会运行 R AWS Systems Manager un Command PowerShell 脚本来启用 SAC 和启动菜单。对于处于停止状态或未由管理的实例 AWS Systems Manager，运行手册使用 [AWSSupport-StartEC2 RescueWorkflow](https://docs.aws.amazon.com//systems-manager-automation-runbooks/latest/userguide/automation-awssupport-startec2rescueworkflow.html) 创建临时 Amazon EC2 实例，以离线执行所需的更改。

 有关更多信息，请参阅适用于 [Windows 实例的 Amazon EC2 串行控制台。](https://docs.aws.amazon.com//AWSEC2/latest/WindowsGuide/ec2-serial-console.html)

**重要**  
如果您在实例上启用 SAC，则依赖密码检索的 Amazon EC2 服务将无法在 Amazon EC2 控制台上运行。有关更多信息，请参阅[使用 SAC 排查 Windows 实例的问题](https://docs.aws.amazon.com//AWSEC2/latest/WindowsGuide/troubleshooting-sac.html)。
要配置对串行控制台的访问权限，您必须在账户级别授予串行控制台访问权限，然后配置 AWS Identity and Access Management (IAM) 策略以向您的用户授予访问权限。您还必须在每个实例上配置基于密码的用户，以使您的用户能够使用串行控制台进行故障排查。有关更多信息，请参阅[配置对 Amazon EC2 串行控制台的访问权限。](https://docs.aws.amazon.com//AWSEC2/latest/UserGuide/configure-access-to-serial-console.html)
要查看您的账户是否启用了串行控制台，请参阅[查看串行控制台的账户访问状态。](https://docs.aws.amazon.com//AWSEC2/latest/WindowsGuide/configure-access-to-serial-console.html#sc-view-account-access)
只有在 [Nitro 系统](https://docs.aws.amazon.com//AWSEC2/latest/UserGuide/instance-types.html#nitro-instance-types)上构建的虚拟化实例才支持串行控制台访问。

 有关更多信息，请参阅 Amazon EC2 串行控制台[先决条件。](https://docs.aws.amazon.com//AWSEC2/latest/WindowsGuide/ec2-serial-console-prerequisites.html)

**文档类型**

自动化

**所有者**

Amazon

**平台**

Windows

**参数**

**所需的 IAM 权限**

`AutomationAssumeRole` 参数需要执行以下操作才能成功使用运行手册。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "autoscaling:DescribeAutoScalingInstances",
                "ec2:GetSerialConsoleAccessStatus",
                "ec2:Describe*",
                "ec2:createTags",
                "ec2:createImage",
                "ssm:DescribeAutomationExecutions",
                "ssm:DescribeInstanceInformation",
                "ssm:GetAutomationExecution",
                "ssm:ListCommandInvocations",
                "ssm:ListCommands"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:AttachVolume",
                "ec2:DetachVolume",
                "ec2:ModifyInstanceAttribute",
                "ec2:RebootInstances",
                "ec2:StartInstances",
                "ec2:StopInstances",
                "iam:GetInstanceProfile",
                "ssm:GetParameters",
                "ssm:SendCommand",
                "ssm:StartAutomationExecution"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1:111122223333:instance/i-02573cafcfEXAMPLE",
                "arn:aws:ec2:us-east-1:111122223333:volume/vol-049df61146EXAMPLE",
                "arn:aws:iam::111122223333:instance-profile/instance-profile-name",
                "arn:aws:ssm:us-east-1:111122223333:parameter/aws/service/*",
                "arn:aws:ssm:us-east-1:*:document/AWSSupport-StartEC2RescueWorkflow",
                "arn:aws:ssm:us-east-1:*:document/AWS-ConfigureAWSPackage",
                "arn:aws:ssm:us-east-1:*:document/AWS-RunPowerShellScript",
                "arn:aws:ssm:us-east-1:111122223333:automation-execution/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "cloudformation:CreateStack"
            ],
            "Resource": "*",
            "Condition": {
                "StringLike": {
                    "aws:RequestTag/Name": "AWSSupport-EC2Rescue: *"
                },
                "ForAllValues:StringEquals": {
                    "aws:TagKeys": [
                        "AWSSupport-EC2Rescue-AutomationExecution",
                        "Name"
                    ]
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "cloudformation:DeleteStack",
                "cloudformation:DescribeStackEvents",
                "cloudformation:DescribeStackResource",
                "cloudformation:DescribeStacks",
                "ec2:AttachVolume",
                "ec2:DetachVolume",
                "ec2:RebootInstances",
                "ec2:StopInstances",
                "ec2:TerminateInstances",
                "ssm:SendCommand"
            ],
            "Resource": "*",
            "Condition": {
                "StringLike": {
                    "aws:ResourceTag/Name": "AWSSupport-EC2Rescue: *"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateLaunchTemplate",
                "ec2:DeleteLaunchTemplate",
                "ec2:RunInstances"
            ],
            "Resource": "*",
            "Condition": {
                "ForAnyValue:StringEquals": {
                    "aws:CalledVia": [
                        "cloudformation.amazonaws.com"
                    ]
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": [
                        "ssm.amazonaws.com",
                        "ec2.amazonaws.com"
                    ]
                }
            }
        }
    ]
}
```

------

 **说明** 

按照这些步骤对自动化进行配置：

1. 导航到 AWS Systems Manager 控制台`AWSSupport-EnableWindowsEC2SerialConsole`中的。

1. 选择 Execute automation（执行自动化）。

1. 对于输入参数，请输入以下内容：
   + **InstanceId:（必填）**

     您要启用亚马逊 EC2 串行控制台、(SAC) 和启动菜单的 Amazon EC2 实例的 ID。
   + **AutomationAssumeRole:（可选）**

     允许 Systems Manager Automation 代表您执行操作的 IAM 角色的亚马逊资源名称 (ARN)。如果未指定角色，Systems Manager Automation 将使用启动此运行手册的用户的权限。
   + **HelperInstanceType:（视情况而定）**

     运行手册预配置的 Amazon EC2 实例的类型，用于为离线实例配置 Amazon EC2 串行控制台。
   + **HelperInstanceProfileName:（视情况而定）**

     帮助程序实例的现有 IAM 实例配置文件的名称。如果您在处于停止状态或不由管理的实例上启用 SAC 和启动菜单 AWS Systems Manager，则这是必需的。如果未指定 IAM 实例配置文件，则自动化会代表您创建一个。
   + **SubnetId:（视情况而定）**

     帮助程序实例的子网 ID。默认情况下，它使用的子网与提供的实例所在的子网相同。
**重要**  
 如果您提供自定义子网，则该子网必须与位于同一个可用区中 InstanceId，并且必须允许访问 Systems Manager 端点。只有当目标实例处于停止状态或不是由管理时，才需要这样做 AWS Systems Manager。
   + **CreateInstanceBackupBeforeScriptExecution:（可选）**

     指定 True 可在启用 SAC 和启动菜单之前创建 Amazon EC2 实例的亚马逊系统映像 (AMI) 备份。Automation 完成后，AMI 仍将存在。您有责任保护对 AMI 的访问权限或将其删除。
   + **BackupAmazonMachineImagePrefix:（视情况而定）**

     如果将`CreateInstanceBackupBeforeScriptExecution`参数设置为，则创建的 Amazon 系统映像 (AMI) 的前缀`True`。

1. 选择执行。

1. 自动化启动。

1. 文档将执行以下步骤：
   + **CheckIfEc2SerialConsoleAccessEnabled:**

     检查是否在账户级别启用了 Amazon EC2 串行控制台访问权限。注意：默认情况下，无法访问串行控制台。有关更多信息，请参阅[配置对 Amazon EC2 串行控制台的访问权限。](https://docs.aws.amazon.com//AWSEC2/latest/WindowsGuide/configure-access-to-serial-console.html#sc-grant-account-access)
   + **CheckIfEc2InstanceIsWindows:**

     断言目标实例平台是否是 Windows。
   + **GetInstanceType:**

     检索目标实例的实例类型。
   + CheckIfInstanceTypeIsNitro:****

     检查实例类型虚拟机管理程序是否基于 Nitro。仅在 Nitro 系统上构建的虚拟化实例支持串行控制台访问。
   + **CheckIfInstanceIsInAutoScalingGroup:**

     通过调用 `DescribeAutoScalingInstances` API 来检查 Amazon EC2 实例是否属于亚马逊 EC2 Auto Scaling 组。如果该实例是 Amazon EC2 Auto Scaling 组的一部分，则它可以确保.NET 实例的移植助手处于待机生命周期状态。
   + **WaitForEc2InstanceStateStablized:**

     等待实例进入运行或停止状态。
   + **GetEc2InstanceState:**

     获取实例的当前状态。
   + **BranchOnEc2InstanceState:**

     基于上一步中检索到的实例状态进行分支。如果该实例状态正在运行，则进入`CheckIfEc2InstanceIsManagedBySSM`步骤，如果没有，则进入该`CheckIfHelperInstanceProfileIsProvided`步骤。
   + **CheckIfEc2 InstanceIsManagedBy SSM：**

     检查实例是否由管理 AWS Systems Manager。如果是托管的，则运行手册使用 PowerShell 运行命令启用 SAC 和启动菜单。
   + **BranchOnPreEC2RescueBackup:**

     基于`CreateInstanceBackupBeforeScriptExecution`输入参数进行分支。
   + **CreateAmazonMachineImageBackup:**

     创建实例的 AMI 备份。
   + **启用 SACAndBootMenu：**

     通过 PowerShell 运行命令脚本启用 SAC 和启动菜单。
   + **RebootInstance:**

     重新启动 Amazon EC2 实例以应用配置。如果实例处于联机状态并且由管理，则这是最后一步 AWS Systems Manager。
   + **CheckIfHelperInstanceProfileIsProvided:**

     在使用临时 Amazon EC2 实例离线启用 SAC 和启动菜单之前，请检查`HelperInstanceProfileName`指定的是否存在。
   + **RunAutomationToInjectOfflineScriptForEnablingSACAndBootMenu:**

     当实例处于停止状态或未由 AWS Systems Manager管理时，运行启用 SAC 和启动菜单。`AWSSupport-StartEC2RescueWorkflow`
   + **GetExecutionDetails:**

     检索备份和脱机脚本输出的图像 ID。

1. 完成后，请查看 “输出” 部分，了解执行的详细结果：
   + **启用SACAndBootMenu。输出：**

     `EnableSACAndBootMenu`步骤中执行命令的输出。
   + **GetExecutionDetails.OfflineScriptOutput:**

     `RunAutomationToInjectOfflineScriptForEnablingSACAndBootMenu`步骤中执行的离线脚本的输出。
   + **GetExecutionDetails.BackupBeforeScriptExecution:**

     如果`CreateInstanceBackupBeforeScriptExecution`输入参数为 True，则拍摄的 AMI 备份的映像 ID。

 **参考** 

Systems Manager Automation
+ [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-EnableWindowsEC2SerialConsole)
+ [运行自动化](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-working-executing.html)
+ [设置自动化](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-setup.html)
+ [支持自动化工作流登录页面](https://aws.amazon.com/premiumsupport/technology/saw/)