

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Executando um PowerShell script do Windows
<a name="cookbooks-101-opsworks-opsworks-powershell"></a>

**Importante**  
O AWS OpsWorks Stacks serviço chegou ao fim da vida útil em 26 de maio de 2024 e foi desativado para clientes novos e existentes. É altamente recomendável que os clientes migrem suas cargas de trabalho para outras soluções o mais rápido possível. Se você tiver dúvidas sobre migração, entre em contato com a AWS Support equipe no [AWS re:POST](https://repost.aws/) ou por meio do Premium [AWS Support](https://aws.amazon.com/support).

**nota**  
Estes exemplos supõem que você já concluiu o exemplo em [Executar uma receita na instância Windows](cookbooks-101-opsworks-opsworks-windows.md). Caso contrário, conclua esse exemplo primeiro. Especificamente, ele descreve como [habilitar o acesso RDP](cookbooks-101-opsworks-opsworks-windows.md#cookbooks-101-opsworks-opsworks-windows-rdp) para suas instâncias.

Uma maneira de fazer com que uma receita execute tarefas em uma instância do Windows, especialmente tarefas que não têm um recurso correspondente do Chef, é fazer com que a receita execute um script do Windows. PowerShell Esta seção apresenta o básico, descrevendo como usar um PowerShell script do Windows para instalar um recurso do Windows.

O [https://docs.chef.io/chef/resources.html#powershell-script](https://docs.chef.io/chef/resources.html#powershell-script)recurso executa PowerShell cmdlets do Windows em uma instância. O exemplo a seguir usa um [WindowsFeature cmdlet Install-](https://technet.microsoft.com/en-us/library/hh849795.aspx) para instalar um visualizador XPS na instância. 

As instruções a seguir resumem o procedimento da criação de uma pilha neste exemplo. Para obter mais informações, consulte [Criar uma nova pilha](workingstacks-creating.md).

**Criar uma pilha**

1. Abra o [console do OpsWorks Stacks](https://console.aws.amazon.com/opsworks/) e selecione **Add Stack (Adicionar pilha)**. Especifique as seguintes configurações, aceite os padrões para as outras configurações e clique em **Add Stack**.
   + **Nome** — PowerShellTest
   + **Região**: Oeste dos EUA (Oregon)

     Este exemplo funcionará em qualquer região, mas recomendamos o uso de Oeste dos EUA (Oregon) para tutoriais.
   + **Sistema operacional padrão**: Microsoft Windows Server 2012 R2

1. Clique em **Add a layer** e [adicione uma camada personalizada à pilha](workinglayers-custom.md) com as seguintes configurações.
   + **Nome** — PowerShell
   + **Nome curto**: powershell

1. [Adicione uma instância 24 horas por dia, 7 dias](workinginstances-add.md) por semana, com configurações padrão na PowerShell camada e [inicie-a](workinginstances-starting.md).

1. Escolha **Permissions** e selecione **Edit**, **SSH/RDP** e **sudo/admin**. Você precisa dessa autorização além do grupo de segurança `AWS-OpsWorks-RDP-Server` para fazer login na instância como um usuário frequente.

Enquanto a instância está iniciando, o que geralmente demora vários minutos, você pode criar o livro de receitas. A receita deste exemplo cria um diretório de dados e é basicamente a receita de [Exemplo 3: Criação de diretórios](cookbooks-101-basics-directories.md), modificada para o Windows.

**Para configurar o livro de receitas**

1. Crie um diretório chamado `powershell` e navegue até ele.

1. Crie um arquivo `metadata.rb` com o seguinte conteúdo e salve-o em `windowstest`.

   ```
   name "powershell"
   version "0.1.0"
   ```

1. Criar um diretório `recipes` em `powershell`.

1. Crie um arquivo `default.rb` com a seguinte receita e salve-o no diretório `recipes`.

   ```
   Chef::Log.info("******Installing XPS.******")
   
   powershell_script "Install XPS Viewer" do
     code <<-EOH
       Install-WindowsFeature XPS-Viewer
     EOH
     guard_interpreter :powershell_script
     not_if "(Get-WindowsFeature -Name XPS-Viewer).installed"
   end
   ```
   + O recurso `powershell_script` executa um cmdlet para instalar o visualizador XPS.

     Este exemplo executa apenas um cmdlet, mas o bloco `code` pode conter várias linhas de comando.
   + O `guard_interpreter` atributo direciona o Chef a usar a versão de 64 bits do Windows PowerShell.
   + O atributo de proteção `not_if` garante que o Chef não instale o recurso caso ele já tenha sido instalado.

1. Crie um arquivo `.zip` do diretório `powershell`.

1. [Faça upload do arquivo em um bucket do Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/UG/UploadingObjectsintoAmazonS3.html), [torne o arquivo público](https://docs.aws.amazon.com/AmazonS3/latest/UG/EditingPermissionsonanObject.html) e registre o URL do arquivo. Você também pode usar um arquivo privado, mas um arquivo público é suficiente para este exemplo, além de ser mais fácil de trabalhar com ele.

   O conteúdo entregue aos buckets do Amazon S3 pode conter conteúdo do cliente. Para obter mais informações sobre a remoção de dados confidenciais, consulte [Como faço para esvaziar um bucket do S3?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/empty-bucket.html) ou [Como faço para excluir um bucket do S3?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-bucket.html).

Agora você pode instalar o livro de receitas e executar a receita.

**Para executar a receita**

1. [Edite a pilha para habilitar livros de receitas personalizados](workingcookbook-installingcustom-enable.md) e especifique as seguintes configurações.
   + **Tipo de repositório**: **Arquivamento do S3**
   + **URL do repositório**: o URL do arquivo do livro de receitas que você registrou anteriormente

   Aceite os valores padrão para as outras configurações e escolha **Save** para atualizar a configuração da pilha.

1. [Execute o comando de pilha **Update Custom Cookbooks **](workingstacks-commands.md) para instalar a versão atual de seus livros de receitas personalizados nas instâncias da pilha. 

1. Após a execução de **Update Custom Cookbooks (Atualizar livros de receitas personalizados)**, execute a receita executando o [comando de stack **Execute Recipes (Executar receitas)**](workingstacks-commands.md) com a opção **Recipes to execute (Receitas apra executar)** definida como **powershell::default**. 

**nota**  
Este exemplo usa **Execute Recipes** por conveniência, mas normalmente você faz com que OpsWorks as pilhas [executem suas receitas automaticamente](workingcookbook-assigningcustom.md), atribuindo-as ao evento de ciclo de vida apropriado. Você pode executar essas receitas acionando manualmente o evento. Use um comando de stack para acionar eventos Setup e Configure, e um [comando de pilha](workingapps-deploying.md) para acionar eventos Deploy e Undeploy.

Após a receita ser executada com sucesso, verifique isso.

**Para verificar a receita do powershell**

1. Examine o [log do Chef](troubleshoot-debug-log.md). Clique em **show** na coluna **Log** da instância powershell1 para exibir o log. Role para baixo e veja sua mensagem de log próxima à parte inferior.

   ```
   ...
   [2015-04-27T18:12:09+00:00] INFO: Storing updated cookbooks/powershell/metadata.rb in the cache.
   [2015-04-27T18:12:09+00:00] INFO: ******Installing XPS.******
   [2015-04-27T18:12:09+00:00] INFO: Processing powershell_script[Install XPS Viewer] action run (powershell::default line 3)
   [2015-04-27T18:12:09+00:00] INFO: Processing powershell_script[Guard resource] action run (dynamically defined)
   [2015-04-27T18:12:42+00:00] INFO: powershell_script[Install XPS Viewer] ran successfully 
   ...
   ```

1. [Use RDP para acessar a instância](workinginstances-rdp.md) e abra o menu **Start**. O visualizador XPS deve estar listado com **Windows Accessories**.