

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 在 EC2 舊版 Windows 作業系統執行個體啟動期間，使用 EC2Config 服務執行任務
<a name="ec2config-service"></a>

**注意**  
EC2Config 已結束支援。Microsoft 不再支援其執行的作業系統版本。強烈建議您升級至最新的啟動代理程式。  
Windows Server 2022 和更新作業系統版本的最新啟動代理程式是 [EC2Launch v2](ec2launch-v2.md)，可取代 EC2Config 和 EC2Launch，並預先安裝在 AWS Windows Server 2022 和 2025 AMIs 上。您亦可在 Windows Server 2016 與 2019 上手動安裝及設定代理程式。如需詳細資訊，請參閱[安裝 EC2Launch v2](ec2launch-v2-install.md)。

適用於 Windows Server 2016 之前的 Windows Server 版本的 Windows AMI 包含一項選用服務，即 EC2Config 服務 (`EC2Config.exe`)。EC2Config 會在啟動期間啟動執行個體及執行作業時及每次您停止或啟動執行個體時啟動。EC2Config 也可依據需求執行作業。其中部分作業為自動啟用，其他作業則必須手動啟用。雖然此項服務為選用，其中可存取專屬的進階功能。此服務在 LocalSystem 帳戶內執行。

EC2Config 服務將執行 Sysprep，此為 Microsoft 的工具，可讓您建立自訂且可重複使用的 Windows AMI。EC2Config 呼叫 Sysprep 時，會使用 `%ProgramFiles%\Amazon\EC2ConfigService\Settings` 中的檔案來決定要執行的操作。您可間接用 **EC2 服務屬性**系統對話方塊編輯這些檔案，或直接用 XML 編輯器或文字編輯器編輯這些檔案。但有些進階設定無法在 **EC2 服務屬性**系統對話方塊中使用，因此您必須直接編輯這些項目。

如果您在更新執行個體設定後從執行個體建立 AMI，新設定將套用到從新 AMI 啟用的任何執行個體。如需有關建立 AMI 的詳細資訊，請參閱 [建立 Amazon EBS 支援的 AMI](creating-an-ami-ebs.md)。

EC2Config 使用設定檔案控制其運作。您可使用圖形工具或直接編輯 XML 檔案，以更新這些設定檔案。服務的二進位檔案和其他檔案包含在 `%ProgramFiles%\Amazon\EC2ConfigService` 目錄中。

**Topics**
+ [EC2Config 和 AWS Systems Manager](#ec2config-ssm)
+ [EC2Config 作業](#UsingConfig_Ovw)
+ [EC2Config 設定檔](#UsingConfigXML_WinAMI)
+ [安裝最新版本的 EC2Config](UsingConfig_Install.md)
+ [設定 EC2Config 服務的 .NET 代理程式設定](ec2config-proxy.md)
+ [從 EC2 Windows 執行個體的系統對話方塊設定 EC2Config 服務屬性](set-ec2config-service-properties.md)
+ [疑難排解使用 EC2Config 啟動代理程式的問題](repair-ec2config.md)
+ [EC2Config 版本記錄](ec2config-version-details.md)

## EC2Config 和 AWS Systems Manager
<a name="ec2config-ssm"></a>

EC2Config 服務會處理 Windows Server 2016 先前 Windows Server 版本 (2016 年 11 月之前發佈) 之 AMI 所建立執行個體的 Systems Manager 請求。

2016 年 11 月之後發佈的 Windows Server 2016 先前 Windows Server 版本的 AMI 所建立的執行個體，包含 EC2Config 服務*和* SSM Agent。EC2Config 將執行先前所述的所有作業，而且 SSM Agent 將處理 Systems Manager 功能的請求，例如執行命令和狀態管理員。

您可使用執行命令，將使用的現有執行個體升級到 EC2Config 服務和 SSM Agent 的最新版本。若要了解詳細資訊，請參閱 *AWS Systems Manager 使用者指南*中的[使用執行命令更新 SSM 代理程式](https://docs.aws.amazon.com/systems-manager/latest/userguide/run-command-tutorial-update-software.html)。

## EC2Config 作業
<a name="UsingConfig_Ovw"></a>

EC2Config 會在執行個體初次啟動時執行初始啟動作業，接著停用執行個體。若要重新執行這些作業，您必須先明確啟用執行個體，然後再關閉執行個體，或手動執行 Sysprep。這些作業如下：
+ 設定管理員帳戶的隨機加密密碼。
+ 產生並安裝遠端桌面連線所用的主機憑證。
+ 動態擴充作業系統的分割區，以包含任何尚未分割的空間。
+ 執行指定的使用者資料 (和 Cloud-Init，如果尚未安裝)。如需指定使用者資料的詳細資訊，請參閱[當使用使用者資料輸入啟動 EC2 執行個體時執行命令](user-data.md)。

EC2Config 會在執行個體每次啟動時執行下列作業：
+ 變更主機名稱，以符合 Hex 表示法中的私有 IP 地址 (預設停用此作業，但必須啟用才能在執行個體啟動時執行)。
+ 設定金鑰管理伺服器 (AWS KMS)，檢查 Windows 啟用狀態，並視需要啟動 Windows。
+ 掛載所有的 Amazon EBS 磁碟區和執行個體儲存體磁碟區，然後將磁碟區名稱對應至磁碟機代號。
+ 將事件日誌項目寫入主控台，以協助故障診斷 (預設停用此作業，但必須啟用才能在執行個體啟動時執行)。
+ 將 Windows 已就緒的狀態寫入主控台。
+ 新增自訂路由表至主要網路轉接器，以在連接單個 NIC 或多個 NIC 時啟用下列的 IP 地址：`169.254.169.250`、`169.254.169.251` 和 `169.254.169.254`。這些地址供 Windows 啟用和當您要存取執行個體中繼資料時使用。
**注意**  
如果 Windows 作業系統設定為使用 IPv4，則可以使用這些 IPv4 link-local 地址。如果 Windows 作業系統已停用 IPv4 網路通訊協定堆疊，並改用 IPv6，請新增 `[fd00:ec2::250]` 取代 `169.254.169.250` 和 `169.254.169.251`。然後新增 `[fd00:ec2::254]` 取代 `169.254.169.254`。

EC2Config 會在每次有使用者登入時執行下列作業：
+ 在桌面背景顯示桌布資訊。

執行個體執行時，您可要求 EC2Config 隨需執行下列作業：
+ 執行 Sysprep 並關閉執行個體，如此才能從中建立 AMI。如需詳細資訊，請參閱[使用 Windows Sysprep 建立 Amazon EC2 AMI](ami-create-win-sysprep.md)。

## EC2Config 設定檔
<a name="UsingConfigXML_WinAMI"></a>

設定檔可控制 EC2Config 服務的操作。這些檔案位在 `C:\Program Files\Amazon\Ec2ConfigService\Settings` 目錄：
+ `ActivationSettings.xml` - 使用金鑰管理伺服器 (AWS 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 尚未啟動，服務會搜尋指定的 AWS KMS 伺服器，嘗試啟動 Windows。
+ `SetAutodiscover` - 表示是否自動偵測 AWS KMS 。
+ `TargetKMSServer`- 儲存 的私有 IP 地址 AWS KMS。 AWS KMS 和您的執行個體必須在相同的區域。
+ `DiscoverFromZone`- 從指定的 DNS 區域探索 AWS KMS 伺服器。
+ `ReadFromUserData`- 從 UserData 取得 AWS KMS 伺服器。
+ `LegacySearchZones`- 從指定的 DNS 區域探索 AWS KMS 伺服器。
+ `DoActivate`—使用區段中的指定設定嘗試啟用。此值可以為 `true` 或 `false`。
+ `LogResultToConsole`—將結果顯示在主控台。

**BundleConfig.xml**

此檔案包含控制 EC2Config 如何準備執行個體以用於建立 AMI 的設定。
+ `AutoSysprep`—指出是否自動使用 Sysprep。變更值為 `Yes` 將使用 Sysprep。
+ `SetRDPCertificate`—設定遠端桌面伺服器的自我簽署憑證。這可安全地傳送 RDP 至執行個體。如果新執行個體應取得該憑證，請變更值為 `Yes`。

  此設定不適用於作業系統版本早於 Windows Server 2016 的執行個體，因為這些作業系統可以產生自己的憑證。
+ `SetPasswordAfterSysprep`—在新啟動的執行個體上設定隨機密碼，以使用者啟動金鑰加密，然後將加密的密碼輸出到主控台。如果新執行個體不應設定為隨機加密密碼，請變更此設定的值為 `No`。

**Config.xml**

 *外掛程式* 
+ `Ec2SetPassword`—每次啟動執行個體時產生隨機加密密碼。此功能自初次啟動後將預設停用，因此重新啟動本執行個體不會變更使用者設定的密碼。變更此設定為 `Enabled`，將繼續在每次啟動執行個體時產生密碼。

  如果您計劃要從執行個體建立 AMI，此設定極為重要。
+ `Ec2SetComputerName`—依執行個體的 IP 地址將執行個體的主機名稱設為唯一名稱，並重新啟動執行個體。若要自行設定主機名稱，或避免現有的主機名稱遭到修改，您必須停用此設定。
+ `Ec2InitializeDrives`—在啟動期間初始化及格式化所有磁碟區。此功能預設為啟用。
+ `Ec2EventLog`—在主控台顯示事件日誌項目。根據預設，會顯示系統事件日誌中最近的三個錯誤項目。若要指定要顯示的事件日誌項目，請編輯 `EventLogConfig.xml` 目錄內的 `EC2ConfigService\Settings` 檔案。若要了解此檔案中設定的相關資訊，請參閱 [Eventlog 金鑰](https://learn.microsoft.com/en-us/windows/win32/eventlog/eventlog-key)。
+ `Ec2ConfigureRDP`—在執行個體上設定自我簽署憑證，讓使用者可使用遠端桌面安全存取執行個體。此設定不適用於作業系統版本早於 Windows Server 2016 的執行個體，因為這些作業系統可以產生自己的憑證。
+ `Ec2OutputRDPCert`—顯示遠端桌面憑證資訊至主控台，讓使用者可對照指紋進行確認。
+ `Ec2SetDriveLetter`—依使用者定義的設定來設定掛載磁碟區的磁碟機代號。根據預設，Amazon EBS 磁碟區掛載至執行個體時，可用執行個體上的磁碟機代號掛載。若要指定磁碟機代號映射，請編輯 `DriveLetterConfig.xml` 目錄內的 `EC2ConfigService\Settings` 檔案。
+ `Ec2WindowsActivate`—外掛程式將處理 Windows 啟用。外掛程式會檢查 Windows 是否啟動。如果沒有，它會更新 AWS KMS 用戶端設定，然後啟用 Windows。

  若要修改 AWS KMS 設定，請編輯位於 `EC2ConfigService\Settings`目錄中`ActivationSettings.xml`的檔案。
+ `Ec2DynamicBootVolumeSize`—擴充 Disk 0/Volume 0，以包含任何尚未分割的空間。
+ `Ec2HandleUserData`—在 Sysprep 執行後建立並執行使用者於初次啟動執行個體時建立的指令碼。指令碼標籤括住的命令將儲存至批次檔，PowerShell 標籤括住的命令將儲存至 .ps1 檔案 (對應至 Ec2 服務屬性系統對話方塊上的使用者資料核取方塊)。
+ `Ec2ElasticGpuSetup`—若執行個體與彈性 GPU 相關聯，則安裝彈性 GPU 軟體套件。
+ `Ec2FeatureLogging`—將 Windows 功能安裝和對應的服務狀態傳送至主控台。僅支援 Microsoft Hyper-V 功能和對應的 vmms 服務。

 *全域設定* 
+ `ManageShutdown` – 確定 Amazon S3 支援的 AMI 啟動的執行個體不會在執行 Sysprep 時終止。
+ `SetDnsSuffixList`—設定 Amazon EC2 網路轉接器的 DNS 尾碼。如此可對執行於 Amazon EC2 的伺服器進行 DNS 解析，而不用提供完全合格的網域名稱。
**注意**  
這會新增下列網域的 DNS 尾碼查詢，並設定其他標準尾碼。如需啟動代理程式如何設定 DNS 尾碼的詳細資訊，請參閱 [設定 EC2 Windows 啟動代理程式的 DNS 尾碼](launch-agents-set-dns.md)。  

  ```
  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`——事件類型 (例如 `Error`、`Warning`、`Information`。)
+ `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*  
停用新磁碟機的格式化。請用此設定手動初始化磁碟機。