

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Ein Windows-Skript ausführen PowerShell
<a name="cookbooks-101-opsworks-opsworks-powershell"></a>

**Wichtig**  
Der AWS OpsWorks Stacks Dienst hat am 26. Mai 2024 das Ende seiner Lebensdauer erreicht und wurde sowohl für neue als auch für bestehende Kunden deaktiviert. Wir empfehlen Kunden dringend, ihre Workloads so bald wie möglich auf andere Lösungen zu migrieren. Wenn Sie Fragen zur Migration haben, wenden Sie sich an das AWS Support Team auf [AWS re:POST](https://repost.aws/) oder über den [AWS Premium-Support](https://aws.amazon.com/support).

**Anmerkung**  
In diesen Beispielen wird davon ausgegangen, dass Sie das Beispiel [Ausführen eines Rezepts auf einer Windows-Instance](cookbooks-101-opsworks-opsworks-windows.md) bereits durchgearbeitet haben. Falls Sie das noch nicht getan haben, holen Sie das nun nach. Insbesondere wird darin beschrieben, wie Sie für Ihre Instances [RDP-Zugriff aktivieren](cookbooks-101-opsworks-opsworks-windows.md#cookbooks-101-opsworks-opsworks-windows-rdp).

Eine Möglichkeit, ein Rezept Aufgaben auf einer Windows-Instanz ausführen zu lassen — insbesondere Aufgaben, für die es keine entsprechende Chef-Ressource gibt — besteht darin, das Rezept ein Windows-Skript ausführen zu lassen. PowerShell In diesem Abschnitt werden Sie mit den Grundlagen vertraut gemacht, indem beschrieben wird, wie Sie ein PowerShell Windows-Skript verwenden, um eine Windows-Funktion zu installieren.

Die [https://docs.chef.io/chef/resources.html#powershell-script](https://docs.chef.io/chef/resources.html#powershell-script)Ressource führt PowerShell Windows-Cmdlets auf einer Instanz aus. Im folgenden Beispiel wird ein [WindowsFeature Install-Cmdlet](https://technet.microsoft.com/en-us/library/hh849795.aspx) verwendet, um einen XPS-Viewer auf der Instanz zu installieren. 

Nachfolgend wird kurz beschrieben, wie Sie für dieses Beispiel einen Stack erstellen. Weitere Informationen finden Sie unter [Erstellen eines neuen Stacks](workingstacks-creating.md).

**Erstellen eines Stacks**

1. Öffnen Sie die [OpsWorks  Stacks-Konsole](https://console.aws.amazon.com/opsworks/) und wählen Sie **Add Stack (Stack hinzufügen)** aus. Legen Sie die folgenden Einstellungen fest, übernehmen Sie für die restlichen Einstellungen die Standardwerte und klicken Sie auf **Add Stack (Stack hinzufügen)**.
   + **Name —** PowerShellTest
   + **Region** — USA West (Oregon)

     Dieses Beispiel funktioniert in jeder Region, wir empfehlen jedoch, US West (Oregon) für Tutorials zu verwenden.
   + **Standardbetriebssystem** — Microsoft Windows Server 2012 R2

1. Wählen Sie **Add a layer (Layer hinzufügen)** aus und [fügen Sie dem Stack einen benutzerdefinierten Layer](workinglayers-custom.md) mit folgenden Einstellungen hinzu:
   + **Name** — PowerShell
   + **Kurzname** — Powershell

1. [Fügen Sie dem PowerShell Layer eine 24/7-Instanz](workinginstances-add.md) mit Standardeinstellungen hinzu und [starten Sie ihn](workinginstances-starting.md).

1. Wählen Sie **Permissions (Berechtigungen)**, dann **Edit (Bearbeiten)** und anschließend **SSH/RDP** und **sudo/admin** aus. Als regulärer Benutzer benötigen Sie zusätzlich zur Sicherheitsgruppe `AWS-OpsWorks-RDP-Server` diese Autorisierung, um sich bei der Instance anzumelden.

Während die Instanz gestartet wird — das dauert in der Regel mehrere Minuten — können Sie das Kochbuch erstellen. Über das Rezept in diesem Beispiel, bei dem es sich um eine für Windows angepasste Version des Rezepts aus [Beispiel 3: Erstellen von Verzeichnissen](cookbooks-101-basics-directories.md) handelt, wird ein Datenverzeichnis erstellt.

**So richten Sie das Rezeptbuch ein**

1. Erstellen Sie ein Verzeichnis `powershell` und öffnen Sie es.

1. Erstellen Sie eine Datei `metadata.rb` mit dem folgenden Inhalt und speichern Sie sie unter `windowstest`.

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

1. Erstellen Sie ein Verzeichnis `recipes` innerhalb des Verzeichnisses `powershell`.

1. Erstellen Sie eine Datei `default.rb` mit dem folgenden Rezept und speichern Sie sie im Verzeichnis `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
   ```
   + Mithilfe der Ressource `powershell_script` wird ein Cmdlet ausgeführt, um den XPS-Viewer zu installieren.

     In diesem Beispiel wird nur ein Cmdlet ausgeführt. Der `code`-Block kann jedoch beliebig viele Befehlszeilen enthalten.
   + Das `guard_interpreter` Attribut weist Chef an, die 64-Bit-Version von Windows zu verwenden. PowerShell
   + Über das Wächterattribut `not_if` wird sichergestellt, dass Chef die Funktion nur dann installiert, wenn sie nicht bereits installiert ist.

1. Erstellen Sie ein `.zip`-Archiv des Verzeichnisses `powershell`.

1. [Laden Sie das Archiv in einen Amazon S3 S3-Bucket](https://docs.aws.amazon.com/AmazonS3/latest/UG/UploadingObjectsintoAmazonS3.html) hoch, [machen Sie das Archiv öffentlich](https://docs.aws.amazon.com/AmazonS3/latest/UG/EditingPermissionsonanObject.html) und notieren Sie die URL des Archivs. Sie können auch ein privates Archiv verwenden. Für dieses Beispiel ist ein öffentliches Archiv jedoch ausreichend und einfacher zu handhaben.

   Inhalte, die an Amazon-S3-Buckets geliefert werden, können Kundeninhalte enthalten. Weitere Informationen zum Entfernen sensibler Daten finden Sie unter [Wie entleere ich einen S3 Bucket?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/empty-bucket.html) oder [Wie lösche ich einen S3 Bucket?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-bucket.html).

Jetzt können Sie das Rezeptbuch installieren und das Rezept ausführen.

**So führen Sie das Rezept aus**

1. [Bearbeiten Sie den Stack, um benutzerdefinierte Rezeptbücher zu aktivieren](workingcookbook-installingcustom-enable.md), und legen Sie folgende Einstellungen fest:
   + **Repository-Typ** — **S3-Archiv**
   + **Repository-URL** — Die URL des Kochbuch-Archivs, die Sie zuvor aufgezeichnet haben

   Übernehmen Sie für die übrigen Einstellungen die Standardwerte und wählen Sie **Save** aus, um die Stack-Konfiguration zu aktualisieren und zu speichern.

1. [Führen Sie den Stack-Befehl **Update Custom Cookbooks **aus](workingstacks-commands.md), um die aktuelle Version Ihrer benutzerdefinierten Rezeptbücher auf der Instance zu installieren. 

1. Nachdem die benutzerdefinierten Rezeptbücher über den Befehl **Update Custom Cookbooks** aktualisiert wurden, führen Sie das Rezept mithilfe des Stack-Befehls [**Execute Recipes** aus](workingstacks-commands.md). Achten Sie darauf, das bei **Recipes to execute** **powershell::default** eingestellt ist. 

**Anmerkung**  
In diesem Beispiel wird der Einfachheit halber **Execute Recipes** verwendet, aber normalerweise lassen Sie OpsWorks Stacks [Ihre Rezepte automatisch ausführen](workingcookbook-assigningcustom.md), indem Sie sie dem entsprechenden Lebenszyklusereignis zuweisen. Sie können diese Rezepte auch durch manuelles Auslösen des Ereignisses ausführen. Verwenden Sie für Einrichtungs- und Konfigurationsereignisse einen Stack-Befehl und für Bereitstellungsereignisse und für Ereignisse zum Aufheben der Bereitstellung einen [Bereitstellungsbefehl](workingapps-deploying.md).

Nachdem das Rezept erfolgreich ausgeführt wurde, können Sie es überprüfen.

**So überprüfen Sie das powershell-Rezept**

1. Sehen Sie sich das [Chef-Protokoll](troubleshoot-debug-log.md) an. Klicken Sie auf **show** in der Spalte **Log** der Instance „powershell1”, um das Protokoll anzuzeigen. Blättern Sie nach unten, wo Sie Ihre Protokollmeldung finden.

   ```
   ...
   [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. [Melden Sie sich über RDP bei der Instance an](workinginstances-rdp.md) und öffnen Sie das Menü **Start**. XPS Viewer sollte unter **Windows Zubehör** aufgelistet sein.