

# Configurar o agente do EC2Launch v1 na instância do Windows
<a name="ec2launch-config"></a>

Quando a instância tiver sido inicializada pela primeira vez, é possível configurar o EC2Launch para iniciar novamente e executar diferentes tarefas de startup.

**Topics**
+ [Configurar as tarefas de inicialização](#ec2launch-inittasks)
+ [Programar o EC2Launch para ser executado em cada inicialização](#run-on-every-boot)
+ [Inicializar unidades e mapear as letras de unidades](#ec2launch-mapping)
+ [Enviar logs de eventos do Windows ao console do EC2](#ec2launch-sendlogs)
+ [Enviar a mensagem O Windows está pronto após uma inicialização bem-sucedida](#ec2launch-sendwinisready)

## Configurar as tarefas de inicialização
<a name="ec2launch-inittasks"></a>

Especifique as configurações no arquivo `LaunchConfig.json` para ativar ou desativar as seguintes tarefas de inicialização:
+ Defina o nome do computador para o endereço IPv4 privado da instância.
+ Defina o monitor para ficar sempre ligado.
+ Configurar novo papel de parede.
+ Adicionar a lista de sufixos DNS.
**nota**  
Isso adiciona uma pesquisa de sufixo DNS para o domínio apresentado a seguir e configura outros sufixos padrão. Para obter mais informações sobre como os agentes de inicialização definem os sufixos DNS, consulte [Configurar o sufixo DNS para agentes de execução do EC2 Windows](launch-agents-set-dns.md).  

  ```
  region.ec2-utilities.amazonaws.com
  ```
+ Estender o tamanho do volume de inicialização.
+ Defina a senha de administrador.

**Para definir as configurações de inicialização**

1. Na instância a ser configurada, abra o seguinte arquivo em um editor de texto: `C:\ProgramData\Amazon\EC2-Windows\Launch\Config\LaunchConfig.json`.

1. Atualize as seguintes configurações conforme necessário e salve suas alterações. Forneça uma senha em `adminPassword` somente se `adminPasswordtype` for `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)"
   }
   ```

   Os tipos de senha são definidos da seguinte maneira:  
`Random`  
O EC2Launch gera uma senha e criptografa-a usando a chave de usuário. O sistema desativa essa configuração depois da execução da instância, portanto, essa senha persistirá se a instância for reinicializada ou parada e iniciada.  
`Specify`  
O EC2Launch usa a senha que você especifica `adminPassword`. Se a senha não atender aos requisitos de sistema, o EC2Launch gera uma senha aleatória. A senha é armazenada em `LaunchConfig.json` como texto não criptografado e será excluída depois que Sysprep definir a senha do administrador. O EC2Launch criptografa a senha usando a chave de usuário.  
`DoNothing`  
O EC2Launch usa a senha que você especifica o arquivo `unattend.xml`. Se você não especificar uma senha em `unattend.xml`, a conta de administrador ficará desativada.

1. No Windows PowerShell, execute o seguinte comando para programar a execução do script como uma tarefa agendada do Windows. O script é executado uma vez durante a próxima inicialização e desativa essas tarefas para que não sejam executadas novamente.

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

## Programar o EC2Launch para ser executado em cada inicialização
<a name="run-on-every-boot"></a>

É possível programar o EC2Launch para ser executado em cada inicialização e não apenas na inicialização inicial.

Para programar o EC2Launch para ser executado em cada inicialização: 

1. Abra o Windows PowerShell e execute o seguinte comando:

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

1. Ou execute o executável com o seguinte comando:

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

   Em seguida, selecione `Run EC2Launch on every boot`. É possível especificar que sua instância do EC2 seja `Shutdown without Sysprep` ou `Shutdown with Sysprep`.

**nota**  
Quando você habilita o EC2Launch para ser executado em cada inicialização, acontecerá o seguinte na próxima vez que o EC2Launch for executado:  
Se o `AdminPasswordType` ainda estiver definido como `Random`, o EC2Launch gerará uma nova senha na próxima inicialização. Após a reinicialização, o `AdminPasswordType` é automaticamente definido como `DoNothing`para impedir que o EC2Launch gere novas senhas em inicializações subsequentes. Para evitar que o EC2Launch gere uma nova senha na primeira inicialização, defina manualmente o `AdminPasswordType` como `DoNothing` antes de reiniciar.
`HandleUserData` será redefinido como `false` a menos que os dados do usuário tenham `persist` definido como `true`. Para obter mais informações, consulte [Scripts de dados do usuário](user-data.md#user-data-scripts).

## Inicializar unidades e mapear as letras de unidades
<a name="ec2launch-mapping"></a>

Especifique as configurações no arquivo `DriveLetterMappingConfig.json` para mapear letras de unidades para volumes na instância do EC2. O script inicializa drives que ainda não foram inicializados e particionados. Para obter mais informações sobre como obter detalhes do volume no Windows, consulte [Get-Volume](https://learn.microsoft.com/en-us/powershell/module/storage/get-volume) na documentação da Microsoft.

**Para mapear letras de unidade a volumes**

1. Abra o arquivo `C:\ProgramData\Amazon\EC2-Windows\Launch\Config\DriveLetterMappingConfig.json` em um editor de textos.

1. Especifique as seguintes configurações de volume e salve suas alterações:

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

1. Abra o Windows PowerShell e use o seguinte comando para executar o script do EC2Launch que inicializa os discos:

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

   Para inicializar os discos sempre que a instância for inicializada, adicione o sinalizador `-Schedule` da seguinte forma:

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

## Enviar logs de eventos do Windows ao console do EC2
<a name="ec2launch-sendlogs"></a>

Especifique configurações no arquivo `EventLogConfig.json` para enviar logs de eventos do Windows aos logs do console do EC2.

**Para definir as configurações para enviar logs de eventos do Windows**

1. Na instância, abra o arquivo `C:\ProgramData\Amazon\EC2-Windows\Launch\Config\EventLogConfig.json` em um editor de texto.

1. Configure as seguintes configurações de log e salve suas alterações:

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

1. No Windows PowerShell, execute o seguinte comando para que o sistema agende o script para execução como uma tarefa agendada do Windows sempre que a instância for inicializada.

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

   Os logs podem demorar três minutos ou mais para aparecerem no console do EC2.

## Enviar a mensagem O Windows está pronto após uma inicialização bem-sucedida
<a name="ec2launch-sendwinisready"></a>

O serviço de EC2Config envia a mensagem “O Windows está pronto” ao console do EC2 após cada inicialização. O EC2Launch envia essa mensagem somente após a primeira inicialização. Para compatibilidade com versões anteriores do serviço de EC2Config, é possível agendar o EC2Launch para enviar essa mensagem após cada inicialização. Na instância, abra o Windows PowerShell e execute o seguinte comando. O sistema agenda o script para ser executado como uma tarefa agendada do Windows.

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