

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

# 在 Windows 執行個體設定 EC2Launch v1 代理程式
<a name="ec2launch-config"></a>

在您的執行個體第一次初始化後，您可以設定 EC2Launch 再次執行並執行其他啟動任務。

**Topics**
+ [設定初始化任務](#ec2launch-inittasks)
+ [排程 EC2Launch 在每次開機時都執行](#run-on-every-boot)
+ [初始化磁碟機和映射磁碟機代號](#ec2launch-mapping)
+ [傳送 Windows 事件日誌到 EC2 主控台。](#ec2launch-sendlogs)
+ [在成功開機後傳送「Windows 已就緒」訊息](#ec2launch-sendwinisready)

## 設定初始化任務
<a name="ec2launch-inittasks"></a>

在 `LaunchConfig.json` 檔案中指定設定以啟用或停用下列初始化任務：
+ 將電腦名稱設定為執行個體私有 IPv4 地址。
+ 將監視器設定為永遠保持開啟狀態。
+ 設定新的桌面。
+ 新增 DNS 尾碼清單。
**注意**  
這會新增下列網域的 DNS 尾碼查詢，並設定其他標準尾碼。如需啟動代理程式如何設定 DNS 尾碼的詳細資訊，請參閱 [設定 EC2 Windows 啟動代理程式的 DNS 尾碼](launch-agents-set-dns.md)。  

  ```
  region.ec2-utilities.amazonaws.com
  ```
+ 擴充開機磁碟區大小。
+ 設定管理員密碼。

**進行初始化設定**

1. 在要設定的執行個體上，於文字編輯器中開啟下列檔案：`C:\ProgramData\Amazon\EC2-Windows\Launch\Config\LaunchConfig.json`。

1. 視需要更新下列設定並儲存變更。只有在 `adminPassword` 是 `adminPasswordtype` 時，才要在 `Specify` 中提供密碼。

   ```
   {
   	"setComputerName": false,
   	"setMonitorAlwaysOn": true,
   	"setWallpaper": true,
   	"addDnsSuffixList": true,
   	"extendBootVolumeSize": true,
   	"handleUserData": true,					  
   	"adminPasswordType": "Random | Specify | DoNothing",
   	"adminPassword": "password that adheres to your security policy (optional)"
   }
   ```

   密碼類型的定義如下：  
`Random`  
EC2Launch 會產生密碼並以使用者金鑰將其加密。系統會在執行個體啟動後停用此設定，以便執行個體重新開機或停止再啟動時，能持續使用這個密碼。  
`Specify`  
EC2Launch 會使用您在 `adminPassword` 中指定的密碼。如果該密碼不符合系統要求，EC2Launch 會改為產生隨機密碼。系統會將該密碼以純文字存放於 `LaunchConfig.json`，並在 Sysprep 設定管理員密碼後予以刪除。EC2Launch 會以使用者金鑰加密該密碼。  
`DoNothing`  
EC2Launch 會使用您在 `unattend.xml` 檔案中指定的密碼。如果您未在 `unattend.xml` 中指定密碼，會停用管理員帳戶。

1. 在 Windows PowerShell 中，執行下列命令以排程指令碼做為 Windows 排程任務執行。該指令碼會在下一次開機期間執行一次，然後停用這些任務，以避免再次執行。

   ```
   C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\InitializeInstance.ps1 -Schedule
   ```

## 排程 EC2Launch 在每次開機時都執行
<a name="run-on-every-boot"></a>

您可排程 EC2Launch 在每次開機時都執行，不是只在初次開機時執行。

啟用 EC2Launch 在每次開機時都執行 

1. 開啟 Windows PowerShell 並執行下列命令：

   ```
   C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\InitializeInstance.ps1 -SchedulePerBoot
   ```

1. 或使用下列命令執行可執行檔：

   ```
   C:\ProgramData\Amazon\EC2-Windows\Launch\Settings\Ec2LaunchSettings.exe
   ```

   然後選取 `Run EC2Launch on every boot`。您可指定 EC2 執行個體 `Shutdown without Sysprep` 或 `Shutdown with Sysprep`。

**注意**  
當您啟用 EC2Launch 以便在每次開機時執行時，下次 EC2Launch 執行時會發生下列情況：  
如果 `AdminPasswordType` 仍然設定為 `Random`，EC2Launch 將在下次開機時產生新密碼。開機之後，`AdminPasswordType` 會自動設定為 `DoNothing`，以防止 EC2Launch 在後續開機時產生新密碼。若要防止 EC2Launch 在第一次開機時產生新密碼，請手動將 `AdminPasswordType` 設定為 `DoNothing`，然後再重新開機。
`HandleUserData` 會設回 `false`，除非使用者資料將 `persist` 設成 `true`。如需詳細資訊，請參閱[使用者資料指令碼](user-data.md#user-data-scripts)。

## 初始化磁碟機和映射磁碟機代號
<a name="ec2launch-mapping"></a>

在 `DriveLetterMappingConfig.json` 檔案中指定設定，以將磁碟機代號映射到您的 EC2 執行個體上的磁碟區。指令碼會初始化尚未初始化和分割的磁碟機。如需有關在 Windows 中取得磁碟區詳細資訊的更多詳細資訊，請參閱 Microsoft 文件中的 [Get-Volume](https://learn.microsoft.com/en-us/powershell/module/storage/get-volume)。

**將磁碟機代號映射到磁碟區**

1. 在文字編輯器中開啟 `C:\ProgramData\Amazon\EC2-Windows\Launch\Config\DriveLetterMappingConfig.json` 檔案。

1. 指定下列磁碟區設定並儲存您的變更：

   ```
   {
   	"driveLetterMapping": [
   		{
   			"volumeName": "sample volume",
   			"driveLetter": "H"
   		}
   	]
   }
   ```

1. 開啟 Windows PowerShell，並使用下列命令執行初始化磁碟的 EC2Launch 指令碼：

   ```
   C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\InitializeDisks.ps1
   ```

   若要在每次執行個體開機時初始化磁碟，請新增 `-Schedule` 標記，如下所示：

   ```
   C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\InitializeDisks.ps1 -Schedule
   ```

## 傳送 Windows 事件日誌到 EC2 主控台。
<a name="ec2launch-sendlogs"></a>

在 `EventLogConfig.json` 檔案中指定設定，以傳送 Windows 事件日誌到 EC2 主控台日誌。

**進行設定以傳送 Windows 事件日誌**

1. 在執行個體上，於文字編輯器中開啟 `C:\ProgramData\Amazon\EC2-Windows\Launch\Config\EventLogConfig.json` 檔案。

1. 進行下列日誌設定並儲存您的變更：

   ```
   {
   	"events": [
   		{
   			"logName": "System",
   			"source": "An event source (optional)",
   			"level": "Error | Warning | Information",
   			"numEntries": 3
   		}
   	]
   }
   ```

1. 在 Windows PowerShell 中執行下列命令，讓系統排程指令碼在每次執行個體開機時做為 Windows 排程任務執行。

   ```
   C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\SendEventLogs.ps1 -Schedule
   ```

   日誌可能要花費三分鐘 (含) 以上才會顯示在 EC2 主控台日誌中。

## 在成功開機後傳送「Windows 已就緒」訊息
<a name="ec2launch-sendwinisready"></a>

EC2Config 服務會在每次開機後，傳送「Windows 已就緒」訊息到 EC2 主控台。EC2Launch 只會在初次開機後傳送這個訊息。若要與 EC2Config 服務回溯相容，您可以排程 EC2Launch 在每次開機後傳送這個訊息。在執行個體上，開啟 Windows PowerShell 並執行下列命令。系統會排程指令碼做為 Windows 排程任務執行。

```
C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\SendWindowsIsReady.ps1 -Schedule
```