

# Criar uma AMI usando o Sysprep do Windows com o EC2Config
<a name="sysprep-using"></a>

Quando você cria uma imagem de uma instância com o serviço EC2Config instalado, ele realiza tarefas específicas à medida que a imagem é preparada. Isso inclui trabalhar com o Sysprep do Windows. Para obter mais informações, consulte [Fases do Sysprep do Windows](ami-create-win-sysprep.md#sysprep-phases).

**Topics**
+ [Ações do Sysprep do Windows](#sysprep-actions)
+ [Após Sysprep](#sysprep-post)
+ [Executar o Sysprep do Windows com o serviço do EC2Config](#sysprep-gui-procedure)

## Ações do Sysprep do Windows
<a name="sysprep-actions"></a>

O Sysprep do Windows e o serviço do EC2Config executam as ações a seguir na preparação de uma imagem.

1. Quando você escolhe **Encerrar com o Sysprep** na caixa de diálogo **Propriedades do EC2 Service)**, o sistema executa o comando **ec2config.exe -sysprep**.

1. O serviço EC2Config lê o conteúdo do arquivo `BundleConfig.xml`. Esse arquivo está localizado no diretório a seguir, por padrão: `C:\Program Files\Amazon\Ec2ConfigService\Settings`.

    O arquivo `BundleConfig.xml` inclui as seguintes configurações. É possível alterar essas configurações:
   + **AutoSysprep**: indica se o Sysprep do Windows deve ser usado automaticamente. Você não precisará mudar esse valor se estiver executando o Sysprep do Windows pela caixa de diálogo de propriedades do serviço do EC2. O valor padrão é `No`.
   + **SetRDPCertificate**: define um certificado autoassinado para o servidor de Desktop Remoto. Isso permite que você use com segurança o Remote Desktop Protocol (RDP) para se conectar à instância. Altere o valor para `Yes` se as novas instâncias precisarem usar um certificado. Essa configuração não é usada com instâncias Windows Server 2012 porque esses sistemas operacionais podem gerar seus próprios certificados. O valor padrão é `No`.
   + **SetPasswordAfterSysprep**: define uma senha aleatória em uma instância recém-executada, criptografa-a com a chave de execução do usuário e gera a senha criptografada no console. Altere o valor para `No` se novas instâncias não precisarem ser definidas com uma senha criptografada aleatória. O valor padrão é `Yes`.
   +  **PreSysprepRunCmd**: o local do comando para execução. Por padrão, o comando está localizado no seguinte diretório:: `C:\Program Files\Amazon\Ec2ConfigService\Scripts\BeforeSysprep.cmd`

1. O sistema executa o `BeforeSysprep.cmd`. Esse comando cria uma chave de registro da seguinte maneira:

   ```
   reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 1 /f
   ```

   A chave de registro desabilita as conexões RDP até serem re-habilitadas. Desabilitar as conexões RDP é uma medida de segurança necessária, pois, na primeira sessão de inicialização após o Sysprep do Windows ser executado, há um breve período no qual o RDP permite conexões e a senha do Administrador fica em branco.

1. O serviço do EC2Config chama o Sysprep do Windows ao executar o seguinte comando:

   ```
   sysprep.exe /unattend: "C:\Program Files\Amazon\Ec2ConfigService\sysprep2008.xml" /oobe /generalize /shutdown
   ```

### Generalizar a fase
<a name="sysprep-generalize"></a>
+ A ferramenta remove informações específicas da imagem e as configurações, como nome de computador e SID. Se a instância pertencer a um domínio, ela será removida do domínio. O arquivo de resposta `sysprep2008.xml` inclui as seguintes configurações que afetam a fase: 
  + **PersistAllDeviceInstalls**: essa configuração impede que a Configuração do Windows remova e reconfigure dispositivos, o que acelera o processo de preparação de imagem, pois as AMIs da Amazon exigem a execução de determinados drivers e a nova detecção desses drivers tomaria o tempo.
  + **DoNotCleanUpNonPresentDevices**: essa configuração retém informações de plug and play para dispositivos que não estão presentes no momento.
+ O Sysprep do Windows fecha o SO à medida que se prepara para criar a AMI. O sistema executa uma nova instância ou inicia a instância original.

### Fase especializada
<a name="sysprep-specialize"></a>

O sistema gera requisitos específicos de SO, como um nome de computador e um SID. O sistema também executa as ações a seguir com base em configurações que você especifica no arquivo de resposta sysprep2008.xml.
+ **CopyProfile**: o Sysprep do Windows pode ser configurado para excluir todos os perfis de usuário, incluindo o perfil incorporado do Administrador. Essa configuração retém a conta de Administrador incorporada, de forma que todas as personalizações que você fizer nessa conta serão transferidas para a nova imagem. O valor padrão é Verdadeiro.

  **CopyProfile** substitui o perfil padrão pelo perfil de administrador local existente. Todas as contas conectadas depois da execução de Sysprep do Windows receberão uma cópia desse perfil e do conteúdo dele no primeiro login. 

  Se você não tiver personalizações específicas do perfil do usuário que deseja transferir para a nova imagem, altere essa configuração para falso. O Sysprep do Windows removerá todos os perfis de usuário; isso economiza tempo e espaço em disco. 
+ **TimeZone**: o fuso horário é definido como Coordinated Universal Time (UTC – Tempo universal coordenado), por padrão.
+ **Comando síncrono com pedido 1**: o sistema executa o comando a seguir, que habilita a conta do administrador e especifica o requisito de senha.

  **net user Administrator /ACTIVE:YES /LOGONPASSWORDCHG:NO /EXPIRES:NEVER /PASSWORDREQ:YES**
+ **Comando síncrono com pedido 2**: o sistema vasculha a senha do administrador. Essa medida de segurança é criada para impedir que a instância fique acessível após o Sysprep do Windows ser concluído, caso você não tenha habilitado a configuração ec2setpassword.

  C:\$1Program Files\$1Amazon\$1Ec2ConfigService\$1ScramblePassword.exe" -u Administrator
+ **Comando síncrono com pedido 3**: o sistema executa o seguinte comando:

  C:\$1Program Files\$1Amazon\$1Ec2ConfigService\$1Scripts\$1SysprepSpecializePhase.cmd

   Esse comando adiciona a seguinte chave de registro, que re-habilita a RDP:

  reg add "HKEY\$1LOCAL\$1MACHINE\$1SYSTEM\$1CurrentControlSet\$1Control\$1Terminal Server" /v fDenyTSConnections /t REG\$1DWORD /d 0 /f

### Fase OOBE
<a name="sysprep-oobe"></a>

1. Usando o arquivo de resposta do serviço EC2Config, o sistema especifica as seguintes configurações:
   + <InputLocale>en-US</InputLocale>
   + <SystemLocale>en-US</SystemLocale>
   + <UILanguage>en-US</UILanguage>
   + <UserLocale>en-US</UserLocale>
   + <HideEULAPage>true</HideEULAPage>
   + <HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
   + <NetworkLocation>Other</NetworkLocation>
   + <ProtectYourPC>3</ProtectYourPC>
   + <BluetoothTaskbarIconEnabled>false</BluetoothTaskbarIconEnabled>
   + <TimeZone>UTC</TimeZone>
   + <RegisteredOrganization>Amazon.com</RegisteredOrganization>
   + <RegisteredOwner>Amazon</RegisteredOwner>
**nota**  
Durante as fases de generalização e especialização, o serviço EC2Config monitora o status do SO. Se o EC2Config detectar que o sistema operacional está na fase Sysprep, ele publicará a seguinte mensagem no log do sistema:  
EC2ConfigMonitorState: 0 O Windows está sendo configurado. SysprepState=IMAGE\$1STATE\$1UNDEPLOYABLE

1. Após a conclusão da fase OOBE, o sistema executa `SetupComplete.cmd` a partir do seguinte local: `C:\Windows\Setup\Scripts\SetupComplete.cmd`. Na AMIs públicas da Amazon antes de abril de 2015 este arquivo estava vazio e não executava nada na imagem. Em AMIs públicas posteriores a abril de 2015, o arquivo inclui o seguinte valor: **call "C:\$1Program Files\$1Amazon\$1Ec2ConfigService\$1Scripts\$1PostSysprep.cmd"**.

1. O sistema executa `PostSysprep.cmd`, que realiza as seguintes operações:
   + Define a senha do Administrador para não expirar. Se a senha expirou, os Administradores podem não conseguir fazer login.
   + Define o nome da máquina MSSQLServer (se instalada) para que o nome esteja em sincronia com a AMI.

## Após Sysprep
<a name="sysprep-post"></a>

Após o Sysprep do Windows ser concluído, os serviços do EC2Config enviam a seguinte mensagem para a saída do console:

```
Windows sysprep configuration complete.
			Message: Sysprep Start
			Message: Sysprep End
```

O EC2Config então executa as ações a seguir:

1. Lê o conteúdo do arquivo config.xml e lista todos os plug-ins habilitados. 

1. Executa todos os plug-ins "Antes que o Windows esteja pronto" ao mesmo tempo.
   + Ec2SetPassword
   + Ec2SetComputerName
   + Ec2InitializeDrives
   + Ec2EventLog
   + Ec2ConfigureRDP
   + Ec2OutputRDPCert
   + Ec2SetDriveLetter
   + Ec2WindowsActivate
   + Ec2DynamicBootVolumeSize

1. Após estar concluído, envia uma mensagem "O Windows está pronto" para os logs do sistema de instância.

1. Executa todos os plug-ins "Após o Windows estar pronto" ao mesmo tempo.
   + Amazon CloudWatch Logs 
   + UserData
   + AWS Systems Manager (Systems Manager) 

Para obter mais informações sobre plug-ins do Windows, consulte [Usar o serviço EC2Config para realizar tarefas durante a execução da instância herdada do sistema operacional Windows do EC2](ec2config-service.md).

## Executar o Sysprep do Windows com o serviço do EC2Config
<a name="sysprep-gui-procedure"></a>

Use o procedimento a seguir para criar uma AMI padronizada usando o Sysprep do Windows e o serviço do EC2Config.

1. No console do Amazon EC2, localize ou [crie](creating-an-ami-ebs.md) a AMI que deseja duplicar.

1. Execute e conecte-se à sua instância do Windows.

1. Personalize-a.

1. Especifique as definições de configuração no arquivo de resposta do serviço EC2Config:

   `C:\Program Files\Amazon\Ec2ConfigService\sysprep2008.xml`

1. No menu **Iniciar** do Windows, escolha **Todos os Programas** e **Configurações do EC2ConfigService**. 

1. Escolha a guia **Image (Imagem)** na caixa de diálogo **Ec2 Service Properties (Propriedades do serviço Ec2)**. Para obter mais informações sobre as opções e as configurações da caixa de diálogo Ec2 Service Properties (Propriedades do serviço Ec2), consulte [Propriedades do serviço Ec2](ec2config-service.md).

1. Selecione uma opção para a senha do Administrador e selecione **Shutdown with Sysprep (Desativação com Sysprep)** ou **Shutdown without Sysprep (Desativação sem Sysprep)**. O EC2Config edita os arquivos de configuração com base na opção de senha selecionada.
   + **Random (Aleatório)**: o EC2Config gera uma senha, criptografa-a com a chave do usuário e exibe a senha criptografada no console. Nós desabilitamos essa configuração depois da primeira execução, de forma que essa senha persistirá se a instância for reinicializada ou parada e inicializada.
   + **Especificar**: a senha é armazenada no arquivo de resposta do Sysprep do Windows de forma não criptografada (texto não criptografado). Quando o Sysprep do Windows é executado em seguida, ele define a senha do Administrador. Se você fechar agora, a senha será definida imediatamente. Quando o serviço é reiniciado novamente, a senha do Administrador é removida. É importante recordar essa senha, pois você não poderá recuperá-la depois.
   + **Manter existente**: a senha existente para a conta do Administrador não muda quando o Sysprep do Windows é executado ou o EC2Config é reiniciado. É importante recordar essa senha, pois você não poderá recuperá-la depois.

1. Escolha **OK**.

Quando você receber uma solicitação para confirmar que deseja executar o Sysprep do Windows e desativar a instância, clique em **Sim**. Você verá que o EC2Config executa o Sysprep do Windows. Em seguida, você é desconectado da instância e a instância é desligada. Se você verificar a página **Instances** (Instâncias) no console do Amazon EC2, o estado da instância mudará de `Running` para `Stopping` e, finalmente, para `Stopped`. Nesse momento, é seguro criar uma AMI com base nessa instância.

Você pode invocar manualmente a ferramenta Sysprep do Windows pela linha de comando usando o seguinte comando:

```
"%programfiles%\amazon\ec2configservice\"ec2config.exe -sysprep"" 
```

**nota**  
As aspas duplas no comando não serão necessárias se o shell do seu CMD já estiver no diretório C:\$1Program Files\$1Amazon\$1EC2ConfigService\$1.

Contudo, é necessário ser muito cuidadoso para que as opções do arquivo XML especificadas na pasta `Ec2ConfigService\Settings` estejam corretas; caso contrário, pode não conseguir conectar-se à instância. Para obter mais informações sobre os arquivos de configurações, consulte [Arquivos de configurações do EC2Config](ec2config-service.md#UsingConfigXML_WinAMI). Para ver um exemplo de como configurar e executar o Sysprep do Windows pela linha de comando, consulte `Ec2ConfigService\Scripts\InstallUpdates.ps1`.