使用 EC2Config 服务配置 Windows 实例(旧版) - Amazon Elastic Compute Cloud
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

使用 EC2Config 服务配置 Windows 实例(旧版)

注意

Microsoft 不再支持 Windows Server 2012 操作系统。EC2Config 文档仅供历史参考之用。我们强烈建议您升级到支持的操作系统的最新启动服务,例如 Windows Server 2022。

Windows Server 2022 的最新启动服务是 EC2Launch v2,它取代了 EC2Config 和 EC2Launch。

Windows Server 2012 R2 及较早版本的 Windows AMI 包括一项可选的 EC2Config 服务 (EC2Config.exe)。EC2Config 在实例启动时启动,并且在启动期间以及您每次停止或启动实例时执行相关任务。EC2Config 还可按需执行任务。部分任务可自动启用,而其他任务必须手动启用。尽管此服务是可选的,但可让您访问否则无法访问的高级功能。此服务可使用 LocalSystem 账户运行。

注意

EC2Launch 在 Windows Server 2016 及 2019 的 Windows AMI 上替换了 EC2Config。有关更多信息,请参阅使用 EC2Launch 配置 Windows 实例。所有受支持的 Windows Server 版本的最新启动服务是 EC2Launch v2,它取代了 EC2Config 和 EC2Launch。

EC2Config 会使用设置文件来控制它的操作。您可以通过图形工具或直接编辑 XML 文件来更新这些设置文件。服务二进制文件和其他文件均包含在 %ProgramFiles%\Amazon\EC2ConfigService 目录中。

EC2Config 任务

当系统首次启动实例后又将其禁用时,EC2Config 会运行初始启动任务。要再次运行这些任务,您必须在关闭实例之前明确启用它们,或者手动运行 Sysprep。这些任务如下所示:

  • 设置管理员账户的随机加密密码。

  • 生成和安装远程桌面连接使用的主机证书。

  • 请动态扩展操作系统分区,以包含所有未分区的空间。

  • 执行指定的用户数据 (和 Cloud-Init,如果已安装)。有关指定用户数据的更多信息,请参阅处理实例用户数据

每次实例启动时,EC2Config 会执行以下任务:

  • 更改主机名称以与十六进制表示法的私有 IP 地址匹配 (此任务在默认情况下处于禁用状态,必须启用才能在实例启动时运行)。

  • 配置密钥管理服务器 (Amazon KMS),检查 Windows 激活状态并根据需要激活 Windows。

  • 挂载所有 Amazon EBS 卷和实例存储卷,并且将卷名称映射到驱动器盘符。

  • 将事件日志条目写入控制台以帮助排查问题 (此任务在默认情况下处于禁用状态,必须进行启用才能在实例启动时运行)。

  • 将 Windows 已准备就绪写入控制台。

  • 在附加单个或多个 NIC 的情况下,向主网络适配器添加自定义路由以启用以下 IP 地址:169.254.169.250169.254.169.251169.254.169.254。当您访问实例元数据时,Windows 激活会使用这些地址。

    注意

    如果 Windows 操作系统配置为使用 IPv4,则可以使用这些 IPv4 链路本地地址。如果 Windows 操作系统禁用了 IPv4 网络协议堆栈并改为使用 IPv6,则请添加 [fd00:ec2::240] 来代替 169.254.169.250169.254.169.251。然后添加 [fd00:ec2::254] 来代替 169.254.169.254

每次用户登录时,EC2Config 都会执行以下任务:

  • 在桌面背景中显示墙纸信息。

实例运行时,您可以请求 EC2Config 按需执行以下任务:

停止、重新启动、删除或卸载 EC2Config

您可以像对其他任何服务那样管理 EC2Config 服务。

要将更新的设置应用到您的实例,可以停止并重新启动服务。如果您要手动安装 EC2Config,则必须首先停止该服务。

停止 EC2Config 服务
  1. 启动并连接到您的 Windows 实例。

  2. 开始菜单上,指向管理工具,然后单击服务

  3. 在服务列表中,右键单击 EC2Config 并选择停止

重新启动 EC2Config 服务
  1. 启动并连接到您的 Windows 实例。

  2. 开始菜单上,指向管理工具,然后单击服务

  3. 在服务列表中,右键单击 EC2Config 并选择 Restart

如果您不需要更新配置设置、创建自己的 AMI 或使用 Amazon Systems Manager,则可以删除并卸载该服务。删除服务会删除它的注册表子项。卸载服务会删除与此服务相关的文件、注册表子项和所有快捷方式。

删除 EC2Config 服务
  1. 启动命令提示符窗口。

  2. 运行以下命令:

    sc delete ec2config
卸载 EC2Config
  1. 启动并连接到您的 Windows 实例。

  2. 开始菜单上,单击控制面板

  3. 双击程序和功能

  4. 在程序列表上,选择 EC2ConfigService 并单击卸载

EC2Config 和 Amazon Systems Manager

对于在 2016 年 11 月之前发布的早于 Windows Server 2016 的 Windows Server 版本,EC2Config 服务可以处理从包含这些版本的 AMI 所创建实例上的 Systems Manager 请求。

对于在 2016 年 11 月之后发布的早于 Windows Server 2016 的 Windows Server 版本,从包含这些版本的 AMI 创建的实例包含 EC2Config 服务 SSM Agent。EC2Config 执行前面所述的所有任务,而 SSM Agent 处理 Run Command 和 State Manager 这样的 Systems Manager 功能的请求。

您可以使用 Run Command 更新现有实例,以便使用最新版本的 EC2Config 服务和 SSM Agent。有关更多信息,请参阅 Amazon Systems Manager 用户指南中的使用 Run Command 更新 SSM Agent

EC2Config 和 Sysprep

EC2Config 服务会运行 Sysprep,借助该 Microsoft 工具您可以创建可重复使用的自定义 Windows AMI。在 EC2Config 调用 Sysprep 时,会使用 %ProgramFiles%\Amazon\EC2ConfigService\Settings 中的设置文件来确定要执行的操作。您可以使用 EC2 Service Properties(EC2 服务属性)对话框间接编辑这些文件,也可以使用 XML 编辑器或文本编辑器直接进行编辑。然而,有些高级设置并未包含在 Ec2 Service Properties (Ec2 服务属性) 对话框中,因此您必须直接编辑这些条目。

如果您在更新某实例的设置之后从中创建了一个 AMI,则新设置会应用到所有从新 AMI 启动的实例。有关创建 AMI 的信息,请参阅创建自定义 Windows AMI

EC2 服务属性

以下过程介绍如何使用 Ec2 Service Properties 对话框来启用或禁用设置。

使用 Ec2 Service Properties 对话框更改设置
  1. 启动并连接到您的 Windows 实例。

  2. Start (开始) 菜单中,单击 All Programs (所有程序),然后单击 EC2ConfigService Settings (EC2ConfigService 设置)

    
						EC2 服务属性。
  3. EC2 Service Properties(EC2 服务属性)对话框的 General(常规)选项卡上,您可以启用或禁用以下设置。

    Set Computer Name(设置电脑名称)

    如果此设置已启用 (默认情况下已启用),则会在每次启动时将主机名与当前内部 IP 地址进行比较;如果主机名和内部 IP 地址不匹配,则重置主机名以包含内部 IP 地址,随后系统重启以接受新主机名。若要设置您自己的主机名或防止修改现有主机名,请不要启用该设置。

    用户数据

    利用用户数据执行,您可以在实例元数据中指定脚本。默认情况下,这些脚本在初次启动期间运行。您还可以配置它们在下次重新引导或启动实例时运行,或者在每次重新引导或启动实例时运行。

    如果您有很大的脚本,我们建议您使用用户数据来下载该脚本,然后再运行它。

    有关更多信息,请参阅用户数据执行

    Event Log (事件日志)

    使用此设置可在启动期间在控制台上显示事件日志条目,以便轻松监控和调试。

    单击 Settings (设置),为发送到控制台的日志条目指定筛选条件。默认筛选条件会将来自系统事件日志的最近三个错误条目发送到控制台。

    Wallpaper Information (壁纸信息)

    使用此设置可在桌面背景中显示系统信息。以下是桌面背景上所显示信息的示例。

    
									墙纸信息显示在桌面背景上。

    桌面背景上显示的信息受设置文件 EC2ConfigService\Settings\WallpaperSettings.xml 控制。

    Enable Hibernation (启用休眠)

    使用此设置可允许 EC2 向操作系统发出信号来执行休眠。

  4. 单击 Storage 标签。您可以启用或禁用以下设置。

    
						EC2 Service Properties(EC2 服务属性)中的 Storage(存储)选项卡。
    Root Volume

    此设置可将磁盘 0/卷 0 动态扩展以包含所有未分区的空间。从具有自定义大小的根设备卷启动实例时,此设置非常有用。

    Initialize Drives

    此设置可格式化并附加在启动期间附加到实例的所有卷。

    Drive Letter Mapping (盘符映射)

    系统会将附加到实例的卷映射到盘符。对于 Amazon EBS 卷,默认以从 D: 到 Z: 的顺序分配驱动器盘符。对于实例存储卷,默认设置则取决于驱动程序。AmazonPV 驱动程序和 Citrix PV 驱动程序以从 Z: 到 A: 的顺序分配实例存储卷驱动器盘符。Red Hat 驱动程序按 D: 到 Z: 的顺序分配实例存储卷盘符。

    要为您的卷选择盘符,请单击 Mappings (映射)。在 DriveLetterSetting 对话框中,为每个卷指定 Volume Name (卷名称)Drive Letter (驱动器盘符) 值,单击 Apply (应用),然后单击 OK (确定)。我们建议您选择诸如字母表中间的字母作为盘符,以避免与可能在使用的盘符发生冲突。

    
									DriveLetterSetting 对话框。

    在指定盘符映射并附加与您指定的某个卷名称具有相同标签的卷之后,EC2Config 会自动为该卷分配您指定的盘符。然而,如果盘符已在使用,则盘符映射会失败。请注意,在您指定盘符映射之后,EC2Config 不会更改已挂载卷的盘符。

  5. 要保存设置并在稍后继续对其进行处理,请单击 OK(确定)以关闭 EC2 Service Properties(EC2 服务属性)对话框。如果您已完成实例自定义并要从该实例创建 AMI,请参阅 使用 Sysprep 创建标准化的 Amazon Machine Image (AMI)

EC2Config 设置文件

设置文件会控制 EC2Config 服务的操作。这些文件位于 C:\Program Files\Amazon\Ec2ConfigService\Settings 目录下:

  • ActivationSettings.xml:使用密钥管理服务器 (Amazon KMS) 控制产品激活。

  • AWS.EC2.Windows.CloudWatch.json — 控制要发送到 CloudWatch 的性能计数器以及要发送到 CloudWatch Logs 的日志。

  • BundleConfig.xml — 控制 EC2Config 为 AMI 创建准备实例存储支持的实例的方式。

  • Config.xml — 控制基本设置。

  • DriveLetterConfig.xml — 控制盘符映射。

  • EventLogConfig.xml — 控制实例启动时控制台上显示的事件日志信息。

  • WallpaperSettings.xml — 控制桌面背景上显示的信息。

ActivationSettings.xml

此文件包含用于控制产品激活的设置。当 Windows 启动时,EC2Config 服务会检查是否已激活 Windows。如果尚未激活 Windows,它会通过搜索指定的 Amazon KMS 服务器激活 Windows。

  • SetAutodiscover – 指示是否自动检测 Amazon KMS。

  • TargetKMSServer:存储 Amazon KMS 的私有 IP 地址。Amazon KMS 必须位于您的实例所在的同一区域。

  • DiscoverFromZone – 发现指定 DNS 区域中的 Amazon KMS 服务器。

  • ReadFromUserData – 获取 UserData 中的 Amazon KMS 服务器。

  • LegacySearchZones – 发现指定 DNS 区域中的 Amazon KMS 服务器。

  • DoActivate — 尝试使用本部分中的指定设置进行激活。该值可以是 truefalse

  • LogResultToConsole — 在控制台中显示结果。

BundleConfig.xml

此文件包含用于控制 EC2Config 为 AMI 创建过程准备实例的方式的设置。

  • AutoSysprep—指明是否自动使用 Sysprep。将值更改为 Yes 可使用 Sysprep。

  • SetRDPCertificate — 为远程桌面服务器设置自签名证书。这样一来,您可以将 RDP 安全应用到实例中。如果新实例应该具有该证书,请将该值改为 Yes

    该设置不适用于 Windows Server 2008 或 Windows Server 2012 实例,因为它们会生成自己的证书。

  • SetPasswordAfterSysprep—在新启动的实例上设置随机密码,使用用户启动密钥对其加密并且将该加密密码输出到控制台中。如果新实例不应设置为随机加密密码,请将该设置的值改为 No

Config.xml

插件

  • Ec2SetPassword — 在您每次启动实例时生成随机加密密码。默认情况下,首次启动之后该功能会被禁用,因此重新启动该实例并不会更改用户设置的密码。每次您启动实例时,请将该设置改为 Enabled,以继续生成密码。

    如果您计划从自己的实例创建一个 AMI,则该设置非常重要。

  • Ec2SetComputerName — 根据实例的 IP 地址将实例的主机名设置为唯一名称,并且重新启动实例。若要设置您自己的主机名或防止修改您的现有主机名,必须禁用此设置。

  • Ec2InitializeDrives — 在启动期间初始化和格式化所有卷。该功能已默认启用。

  • Ec2EventLog — 在控制台中显示事件日志条目。默认情况下,会显示来自系统事件日志的最近三个错误条目。要指定将显示的事件日志条目,请编辑 EventLogConfig.xml 目录中的 EC2ConfigService\Settings 文件。有关该文件中设置的信息,请参阅 MSDN 库中的 Eventlog Key

  • Ec2ConfigureRDP — 在实例上设置自签名证书,以便用户可以使用远程桌面安全访问实例。Windows Server 2008 和 Windows Server 2012 实例上已禁用该功能,因为它们可以生成自己的证书。

  • Ec2OutputRDPCert — 在控制台中显示远程桌面证书信息,以便用户可以根据指纹对其进行验证。

  • Ec2SetDriveLetter — 根据用户定义的设置,设置已挂载卷的盘符。默认情况下,Amazon EBS 卷附加到实例之后,系统会根据实例上的盘符进行挂载。要指定您的盘符映射,请编辑 DriveLetterConfig.xml 目录中的 EC2ConfigService\Settings 文件。

  • Ec2WindowsActivate — 该插件处理 Windows 激活。它检查 Windows 是否已激活。如果未激活,则它会更新 Amazon KMS 客户端设置,然后激活 Windows。

    要修改 Amazon KMS 设置,请编辑 ActivationSettings.xml 目录中的 EC2ConfigService\Settings 文件。

  • Ec2DynamicBootVolumeSize — 扩展磁盘 0/卷 0 以包含所有未分区的空间。

  • Ec2HandleUserData—创建脚本并在运行 Sysprep 后首次启动实例时运行用户创建的脚本。脚本标签包含的命令会保存到批处理文件中,而 PowerShell 标签包含的命令会保存到 .ps1 文件中(对应于“Ec2 Service Properties (Ec2 服务属性)”对话框上的“User Data (用户数据)”复选框)。

  • Ec2ElasticGpuSetup — 如果实例与 Elastic GPU 关联,请安装 Elastic GPU 软件包。

  • Ec2FeatureLogging — 将 Windows 功能安装和相应服务状态发送到控制台。仅对 Microsoft Hyper-V 功能和相应 vmms 服务提供支持。

全局设置

  • ManageShutdown — 确保从实例存储支持的 AMI 启动的实例不会在运行 Sysprep 时终止。

  • SetDnsSuffixList — 为 Amazon EC2 设置网络适配器的 DNS 后缀。这允许 Amazon EC2 中运行的服务器的 DNS 解析,无需提供完全限定域名。

    注意

    这会为以下域添加 DNS 后缀查找,并配置其他标准后缀。有关启动代理如何设置 DNS 后缀的更多信息,请参阅 配置 DNS 后缀

    region.ec2-utilities.amazonaws.com
  • WaitForMetaDataAvailable — 确保 EC2Config 服务会在继续启动之前等待元数据处于可访问状态并且网络可用。此检查确保了 EC2Config 可以从激活和其他插件的元数据获取信息。

  • ShouldAddRoutes — 在附加多个 NIC 的情况下,向主网络适配器添加自定义路由以启用以下 IP 地址:169.254.169.250、169.254.169.251 和 169.254.169.254。当您访问实例元数据时,Windows 激活会使用这些地址。

  • RemoveCredentialsfromSyspreponStartup — 在下一次启动服务时从 Sysprep.xml 中删除管理员密码。要确保该密码持久保留,请编辑该设置。

DriveLetterConfig.xml

此文件包含用于控制盘符映射的设置。默认情况下,一个卷可映射到任何可用的盘符。您可按以下方式将卷挂载为特定的盘符。

<?xml version="1.0" standalone="yes"?> <DriveLetterMapping> <Mapping> <VolumeName></VolumeName> <DriveLetter></DriveLetter> </Mapping> . . . <Mapping> <VolumeName></VolumeName> <DriveLetter></DriveLetter> </Mapping> </DriveLetterMapping>
  • VolumeName — 卷标签。例如:My Volume。要为实例存储卷指定映射,请使用标签 Temporary Storage X,其中 X 为 0 到 25 之间的数字。

  • DriveLetter — 盘符。例如:M:。如果盘符已在使用,则映射会失败。

EventLogConfig.xml

此文件包含用于控制实例启动时显示在控制台上的事件日志信息的设置。默认情况下,我们会显示来自系统事件日志的最近三个错误条目。

  • Category — 监视器的事件日志密钥。

  • ErrorType — 事件类型(例如 、ErrorWarningInformation

  • NumEntries — 此类别中所存储事件的数目。

  • LastMessageTime — 为防止重复推送相同的消息,服务会在每次推送消息时更新此值。

  • AppName — 事件源或记录事件的应用程序。

WallpaperSettings.xml

此文件包含用于控制在桌面背景上显示的信息的设置。默认情况下显示以下信息。

  • Hostname — 显示计算机名称。

  • Instance ID — 显示实例的 ID。

  • Public IP Address — 显示实例的公有 IP 地址。

  • Private IP Address — 显示实例的私有 IP 地址。

  • Availability Zone — 显示实例在其中运行的可用区。

  • Instance Size — 显示实例的类型。

  • Architecture — 显示 PROCESSOR_ARCHITECTURE 环境变量的设置。

您可以通过删除条目删除默认显示的任何信息。您可以按如下所示添加其他要显示的实例元数据。

<WallpaperInformation> <name>display_name</name> <source>metadata</source> <identifier>meta-data/path</identifier> </WallpaperInformation>

您可以按如下所示添加其他要显示的系统环境变量。

<WallpaperInformation> <name>display_name</name> <source>EnvironmentVariable</source> <identifier>variable-name</identifier> </WallpaperInformation>
InitializeDrivesSettings.xml

此文件包含控制 EC2Config 如何初始化驱动器的设置。

默认情况下,EC2Config 用操作系统初始化未联机的驱动器。您可以自定义插件,如下所示。

<InitializeDrivesSettings> <SettingsGroup>setting</SettingsGroup> </InitializeDrivesSettings>

使用设置组指定要如何初始化驱动器:

FormatWithTRIM

在驱动器格式化时启用 TRIM 命令。在驱动器格式化和初始化后,系统还原 TRIM 配置。

从 EC2Config 版本 3.18 开始,在磁盘格式化操作过程中默认禁用 TRIM 命令。这将缩短格式化时间。对于 EC2Config 版本 3.18 及更高版本,在磁盘格式化操作期间使用此设置启用 TRIM。

FormatWithoutTRIM

在格式化驱动器时禁用 TRIM 命令并在 Windows 中改进格式化时间。在驱动器格式化和初始化后,系统还原 TRIM 配置。

DisableInitializeDrives

对新驱动器禁用格式化。使用此设置可手动初始化驱动器。

配置 EC2Config 服务的代理设置

您可以使用下列方法之一将 EC2Config 服务配置为通过代理进行通信:适用于 .NET 的 Amazon 开发工具包、system.net 元素或 Microsoft 组策略和 Internet Explorer。使用 Amazon SDK for .NET 时可以指定登录凭证,因此,请优先使用此方法。

使用 Amazon SDK for .NET 配置代理设置(首选)

您可以通过在 proxy 文件中指定 Ec2Config.exe.config 元素来配置 EC2Config 服务的代理设置。有关更多信息,请参阅适用于 .NET 的 Amazon 开发工具包的配置文件参考

在 Ec2Config.exe.config 文件中指定代理元素
  1. 在需要 EC2Config 服务通过代理进行通信的实例上编辑 Ec2Config.exe.config 文件。默认情况下,该文件位于以下目录中:%ProgramFiles%\Amazon\Ec2ConfigService

  2. 将以下 aws 元素添加到 configSections。不要将此添加到任何现有 sectionGroups 中。

    适用于 EC2Config 3.17 版本或更早版本

    <configSections> <section name="aws" type="Amazon.AWSSection, AWSSDK"/> </configSections>

    适用于 EC2Config 3.18 版本或更新版本

    <configSections> <section name="aws" type="Amazon.AWSSection, AWSSDK.Core"/> </configSections>
  3. aws 文件中添加下面的 Ec2Config.exe.config 元素。

    <aws> <proxy host="string value" port="string value" username="string value" password="string value" /> </aws>
  4. 保存您的更改。

使用 system.net 元素配置代理设置

您可以在 system.net 文件的 Ec2Config.exe.config 元素中指定代理设置。有关更多信息,请参阅 MSDN 上的 defaultProxy 元素 (网络设置)

在 Ec2Config.exe.config 文件中指定 system.net 元素
  1. 在需要 EC2Config 服务通过代理进行通信的实例上编辑 Ec2Config.exe.config 文件。默认情况下,该文件位于以下目录中:%ProgramFiles%\Amazon\Ec2ConfigService

  2. defaultProxy 条目添加 system.net 中。有关更多信息,请参阅 MSDN 上的 defaultProxy 元素 (网络设置)

    例如,下面的配置将路由所有流量并使用当前为 Internet Explorer 配置的代理,但元数据和授权流量除外 (这两者将绕过该代理)。

    <defaultProxy> <proxy usesystemdefault="true" /> <bypasslist> <add address="169.254.169.250" /> <add address="169.254.169.251" /> <add address="169.254.169.254" /> <add address="[fd00:ec2::250]" /> <add address="[fd00:ec2::254]" /> </bypasslist> </defaultProxy>
  3. 保存您的更改。

使用 Microsoft 组策略及 Microsoft Internet Explorer 配置代理设置

EC2Config 服务以本地系统用户账户运行。更改实例上的组策略设置后,您可以在 Internet Explorer 中为此账户指定实例级代理设置。

使用组策略及 Internet Explorer 配置代理设置
  1. 在需要 EC2Config 服务通过代理进行通信的实例上,以管理员身份打开命令提示符,键入 gpedit.msc,然后按 Enter。

  2. 在本地组策略编辑器中,依次选择本地计算机策略下的计算机配置管理模板Windows 组件Internet Explorer

  3. 在右侧窗格中,选择按计算机进行代理服务器设置(不是按用户),然后选择编辑策略设置

  4. 选择启用,然后选择应用

  5. 打开 Internet Explorer,然后选择工具按钮。

  6. 选择 Internet 选项,然后选择连接选项卡。

  7. 选择局域网设置

  8. 代理服务器下,选择为 LAN 使用代理服务器选项。

  9. 指定地址和端口信息,然后选择确定