

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Exécution d'un PowerShell script Windows
<a name="cookbooks-101-opsworks-opsworks-powershell"></a>

**Important**  
Le AWS OpsWorks Stacks service a pris fin le 26 mai 2024 et a été désactivé tant pour les nouveaux clients que pour les clients existants. Nous recommandons vivement aux clients de migrer leurs charges de travail vers d'autres solutions dès que possible. Si vous avez des questions sur la migration, contactez l' AWS Support équipe sur [AWS Re:Post](https://repost.aws/) ou via le [AWS Support](https://aws.amazon.com/support) Premium.

**Note**  
Ces exemples supposent que vous avez déjà fait l'exemple [Exécution d'une recette sur une instance Windows](cookbooks-101-opsworks-opsworks-windows.md). Si tel n'est pas le cas, commencez par cet exemple. Il décrit plus particulièrement comment [autoriser l'accès RDP](cookbooks-101-opsworks-opsworks-windows.md#cookbooks-101-opsworks-opsworks-windows-rdp) à vos instances.

Pour qu'une recette exécute des tâches sur une instance Windows, en particulier des tâches pour lesquelles aucune ressource Chef n'est correspondante, la recette exécute un script Windows. PowerShell Cette section présente les principes de base en expliquant comment utiliser un PowerShell script Windows pour installer une fonctionnalité Windows.

La [https://docs.chef.io/chef/resources.html#powershell-script](https://docs.chef.io/chef/resources.html#powershell-script)ressource exécute des PowerShell applets de commande Windows sur une instance. L'exemple suivant utilise une [WindowsFeature applet de commande Install-](https://technet.microsoft.com/en-us/library/hh849795.aspx) pour installer un visualiseur XPS sur l'instance. 

Voici un bref résumé de la création d'une pile pour cet exemple. Pour de plus amples informations, veuillez consulter [Créer une pile](workingstacks-creating.md).

**Création d’une pile**

1. Ouvrez la [console OpsWorks Stacks](https://console.aws.amazon.com/opsworks/) et choisissez **Add Stack (Ajouter une pile)**. Spécifiez les paramètres suivants, acceptez les valeurs par défaut pour les autres paramètres et cliquez sur **Add Stack (Ajouter une pile)**.
   + **Nom** — PowerShellTest
   + **Région** — Ouest des États-Unis (Oregon)

     Cet exemple fonctionne dans n'importe quelle région, mais nous vous recommandons d'utiliser US West (Oregon) pour les didacticiels.
   + **Système d'exploitation par défaut** : Microsoft Windows Server 2012 R2

1. Choisissez **Add a layer (Ajouter une couche)** et [ajoutez une couche personnalisée](workinglayers-custom.md) à la pile avec les paramètres suivants.
   + **Nom** — PowerShell
   + **Nom abrégé** : PowerShell

1. [Ajoutez une instance 24 h/24](workinginstances-add.md) et 7 j/7 à la PowerShell couche avec les paramètres par défaut et [démarrez-la](workinginstances-starting.md).

1. Choisissez **Permissions (Autorisations)**, puis **Edit (Modifier)**, et sélectionnez **SSH/RDP** et **sudo/admin**. Vous avez besoin de cette autorisation en plus du groupe de sécurité `AWS-OpsWorks-RDP-Server` pour vous connecter à l'instance en tant qu'utilisateur standard.

Pendant le démarrage de l'instance (cela prend généralement plusieurs minutes), vous pouvez créer le livre de recettes. La recette de cet exemple crée un répertoire de données et est en fait la recette de [Exemple 3 : Création de répertoires](cookbooks-101-basics-directories.md), modifiée pour Windows.

**Pour configurer le livre de recettes**

1. Créez un répertoire nommé `powershell` et accédez à celui-ci.

1. Créez un fichier `metadata.rb` avec le contenu suivant et enregistrez-le sur `windowstest`.

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

1. Créez un répertoire `recipes` dans le répertoire `powershell`.

1. Créez un fichier `default.rb` avec la recette suivante et enregistrez-le dans le répertoire `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
   ```
   + La ressource `powershell_script` exécute une applet de commande pour installer XPS Viewer.

     Cet exemple exécute une seule applet de commande, mais le bloc `code` peut contenir n'importe quel nombre de lignes de commande.
   + L'`guard_interpreter`attribut indique à Chef d'utiliser la version 64 bits de Windows PowerShell.
   + L'attribut de protection `not_if` veille à ce que Chef n'installe pas la fonctionnalité si elle a déjà été installée.

1. Créez une archive `.zip` du répertoire `powershell`.

1. [Téléchargez l'archive dans un compartiment Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/UG/UploadingObjectsintoAmazonS3.html), [rendez-la publique](https://docs.aws.amazon.com/AmazonS3/latest/UG/EditingPermissionsonanObject.html) et enregistrez l'URL de l'archive. Vous pouvez également utiliser une archive privée, mais une archive publique est suffisante pour cet exemple et légèrement plus facile à utiliser.

   Le contenu livré aux compartiments Amazon S3 peut contenir du contenu client. Pour plus d'informations sur la suppression de données sensibles, consultez [How Do I Empty an S3 Bucket?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/empty-bucket.html) (Comment puis-je vider un compartiment S3 ?) ou [How Do I Delete an S3 Bucket?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-bucket.html) (Comment supprimer un compartiment S3 ?).

Vous pouvez maintenant installer le livre de recettes et exécuter la recette.

**Pour exécuter la recette**

1. [Modifiez la pile pour activer les livres personnalisés](workingcookbook-installingcustom-enable.md) et spécifiez les paramètres suivants.
   + **Type de référentiel** — **S3 Archive**
   + **URL du référentiel : URL** de l'archive du livre de recettes que vous avez enregistrée précédemment

   Acceptez les valeurs par défaut pour les autres paramètres, puis choisissez **Save (Enregistrer)** pour mettre à jour la configuration de la pile.

1. [Exécutez la commande de pile **Update Custom Cookbooks (Mettre à jour les livres de recettes personnalisées)**](workingstacks-commands.md) pour installer la version actuelle de vos livres de recettes personnalisées sur l'instance. 

1. Une fois l'opération **Update Custom Cookbooks (Mettre à jour les livres de recettes personnalisées)** terminée, exécutez la recette en exécutant la [commande de pile **Execute Recipes (Exécuter les recettes)**](workingstacks-commands.md) avec le paramètre **Recipes to execute (Recettes à exécuter)** défini sur **powershell::default**. 

**Note**  
Cet exemple utilise **Execute Recipes** pour des raisons pratiques, mais OpsWorks Stacks [exécute généralement vos recettes automatiquement](workingcookbook-assigningcustom.md) en les affectant à l'événement du cycle de vie approprié. Vous pouvez exécuter ces recettes en déclenchant manuellement l'événement. Vous pouvez utiliser une commande de pile pour déclencher des événements Setup et Configure et une [commande de déploiement](workingapps-deploying.md) pour déclencher des événements Deploy et Undeploy.

Une fois que la recette a été exécutée correctement, vous pouvez la vérifier.

**Pour vérifier la recette powershell**

1. Examinez le [journal de Chef](troubleshoot-debug-log.md). Cliquez sur **show (afficher)** dans la colonne **Log (Journal)** de l'instance powershell1. Faites défiler vers le bas pour afficher votre message de journal proche de la fin.

   ```
   ...
   [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. [Utilisez RDP pour vous connecter à l'instance](workinginstances-rdp.md) et ouvrez le menu **Start (Démarrer)**. La visionneuse XPS doit être répertoriée avec les **Accessoires Windows**.