

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.

# Aktionsmodule, die vom AWSTOE Komponentenmanager unterstützt werden
<a name="toe-action-modules"></a>

Image-Building-Services wie EC2 Image Builder verwenden AWSTOE Aktionsmodule, um die EC2-Instances zu konfigurieren, die zum Erstellen und Testen von benutzerdefinierten Computer-Images verwendet werden. In diesem Abschnitt werden die Funktionen häufig verwendeter AWSTOE Aktionsmodule und deren Konfiguration sowie Beispiele beschrieben.

Komponenten werden mit YAML-Dokumenten im Klartext verfasst. Weitere Hinweise zur Dokumentensyntax finden Sie unter. [Verwenden Sie das AWSTOE Component Document Framework für benutzerdefinierte Komponenten](toe-use-documents.md)

**Anmerkung**  
Alle Aktionsmodule verwenden dasselbe Konto wie der Systems Manager Manager-Agent, wenn sie ausgeführt werden, was `root` unter Linux und `NT Authority\SYSTEM` unter Windows der Fall ist.

Der folgende Querverweis kategorisiert Aktionsmodule nach der Art der Aktionen, die sie ausführen.

 

**Allgemeine Ausführung**
+ [Assert (Linux, Windows, macOS)](#action-modules-assertion)
+ [ExecuteBash (Linux, macOS)](#action-modules-executebash)
+ [ExecuteBinary (Linux, Windows, macOS)](#action-modules-executebinary)
+ [ExecuteDocument (Linux, Windows, macOS)](#action-modules-executedocument)
+ [ExecutePowerShell (Windows)](#action-modules-executepowershell)

 

**Datei herunterladen und hochladen**
+ [S3 herunterladen (Linux, Windows, macOS)](#action-modules-s3download)
+ [S3 hochladen (Linux, Windows, macOS)](#action-modules-s3upload)
+ [WebDownload (Linux, Windows, macOS)](#action-modules-webdownload)

 

**Operationen im Dateisystem**
+ [AppendFile (Linux, Windows, macOS)](#action-modules-appendfile)
+ [CopyFile (Linux, Windows, macOS)](#action-modules-copyfile)
+ [CopyFolder (Linux, Windows, macOS)](#action-modules-copyfolder)
+ [CreateFile (Linux, Windows, macOS)](#action-modules-createfile)
+ [CreateFolder (Linux, Windows, macOS)](#action-modules-createfolder)
+ [CreateSymlink (Linux, Windows, macOS)](#action-modules-createsymlink)
+ [DeleteFile (Linux, Windows, macOS)](#action-modules-deletefile)
+ [DeleteFolder (Linux, Windows, macOS)](#action-modules-deletefolder)
+ [ListFiles (Linux, Windows, macOS)](#action-modules-listfiles)
+ [MoveFile (Linux, Windows, macOS)](#action-modules-movefile)
+ [MoveFolder (Linux, Windows, macOS)](#action-modules-movefolder)
+ [ReadFile (Linux, Windows, macOS)](#action-modules-readfile)
+ [SetFileEncoding (Linux, Windows, macOS)](#action-modules-setfileencoding)
+ [SetFileOwner (Linux, Windows, macOS)](#action-modules-setfileowner)
+ [SetFolderOwner (Linux, Windows, macOS)](#action-modules-setfolderowner)
+ [SetFilePermissions (Linux, Windows, macOS)](#action-modules-setfilepermissions)
+ [SetFolderPermissions (Linux, Windows, macOS)](#action-modules-setfolderpermissions)

 

**Aktionen zur Softwareinstallation**
+ [Installieren Sie MSI (Windows)](#action-modules-install-msi)
+ [Deinstallieren Sie MSI (Windows)](#action-modules-uninstall-msi)

 

**Systemaktionen**
+ [Neustart (Linux, Windows)](#action-modules-reboot)
+ [SetRegistry (Windows)](#action-modules-setregistry)
+ [OS aktualisieren (Linux, Windows)](#action-modules-updateos)

## Allgemeine Ausführungsmodule
<a name="action-modules-general-execution"></a>

Der folgende Abschnitt enthält Einzelheiten zu Aktionsmodulen, die Befehle ausführen und den Ausführungsablauf steuern.

**Topics**
+ [Assert (Linux, Windows, macOS)](#action-modules-assertion)
+ [ExecuteBash (Linux, macOS)](#action-modules-executebash)
+ [ExecuteBinary (Linux, Windows, macOS)](#action-modules-executebinary)
+ [ExecuteDocument (Linux, Windows, macOS)](#action-modules-executedocument)
+ [ExecutePowerShell (Windows)](#action-modules-executepowershell)

### Assert (Linux, Windows, macOS)
<a name="action-modules-assertion"></a>

Das **Assert-Aktionsmodul** führt Wertvergleiche mit [Vergleichsoperatoren](toe-comparison-operators.md) oder [Logische Operatoren](toe-logical-operators.md) als Eingabe durch. Das Ergebnis des Operatorausdrucks (wahr oder falsch) gibt den allgemeinen Erfolgs- oder Fehlerstatus für den Schritt an.

Ergibt der Vergleich oder der Ausdruck des logischen Operators das Ergebnis`true`, wird der Schritt als `Success` markiert. Andernfalls ist der Schritt als `Failed` markiert. Schlägt der Schritt fehl, entscheidet der `onFailure` Parameter über das Ergebnis des Schritts.


**Input**  

| Tastenname | Description | Typ | Erforderlich | 
| --- | --- | --- | --- | 
| input | Enthält einen einzelnen Vergleichs- oder logischen Operator. Beachten Sie, dass logische Operatoren mehr als einen Vergleichsoperator enthalten können. | Dies ist je nach Operator variabel | Ja | 

**Eingabebeispiel: Ein einfacher Vergleich mit dem `stringEquals` Vergleichsoperator**

In diesem Beispiel wird das Ergebnis als ausgewertet. `true`

```
- name: StringComparison
  action: Assert
  inputs:
    stringEquals: '2.1.1'
    value: '{{ validate.ApplicationVersion.outputs.stdout }}'
```

**Eingabebeispiel: Regex-Vergleiche mit dem Vergleichsoperator `patternMatches`**

Diese Beispiele werden alle zu ausgewertet. `true`

```
- name: Letters only
  action: Assert
  inputs:
    patternMatches: '^[a-zA-Z]+$'
    value: 'ThisIsOnlyLetters'

- name: Letters and spaces only
  action: Assert
  inputs:
    patternMatches: '^[a-zA-Z\s]+$'
    value: 'This text contains spaces'
  
- name: Numbers only
  action: Assert
  inputs:
    patternMatches: '^[0-9]+$'
    value: '1234567890'
```

**Eingabebeispiel: Verschachtelte Vergleiche mit logischen Operatoren und verketteten Variablen**

Das folgende Beispiel zeigt verschachtelte Vergleiche mit logischen Operatoren, die Vergleiche mit verketteten Variablen verwenden. Das gibt `Assert` an, `true` ob eine der folgenden Aussagen zutrifft:
+ Der `ApplicationVersion` ist größer als `2.0` und ist `CPUArchitecture` gleich`arm64`.
+ Das `CPUArchitecture` Gleiche`x86_64`.

```
- name: NestedComparisons
  action: Assert
  inputs:
    or: # <- first level deep
      - and: # <- second level deep
          - numberGreaterThan: 2.0 # <- third level deep
            value: '{{ validate.ApplicationVersion.outputs.stdout }}'
          - stringEquals: 'arm64'
            value: '{{ validate.CPUArchitecture.outputs.stdout }}'
      - stringEquals: 'x86_64'
        value: '{{ validate.CPUArchitecture.outputs.stdout }}'
```

**Ausgabe:**

Die Ausgabe von an `Assert` ist Erfolg oder Misserfolg des Schritts.

### ExecuteBash (Linux, macOS)
<a name="action-modules-executebash"></a>

Das **ExecuteBash**Aktionsmodul ermöglicht es Ihnen, Bash-Skripte mit Inline-Shell-Code/Befehlen auszuführen. Dieses Modul unterstützt Linux. 

Alle Befehle und Anweisungen, die Sie im Befehlsblock angeben, werden in eine Datei konvertiert (zum Beispiel`input.sh`) und mit der Bash-Shell ausgeführt. Das Ergebnis der Ausführung der Shell-Datei ist der Exit-Code des Schritts. 

Das **ExecuteBash**Modul verarbeitet Systemneustarts, wenn das Skript mit dem Exit-Code beendet wird. `194` Nach der Initiierung führt das Programm eine der folgenden Aktionen aus:
+ Die Anwendung übergibt dem Aufrufer den Exit-Code, wenn er vom Systems Manager Agent ausgeführt wird. Der Systems Manager Agent führt den Systemneustart durch und führt denselben Schritt aus, der den Neustart initiiert hat, wie unter [Managed Instance from Scripts neu starten](https://docs.aws.amazon.com/systems-manager/latest/userguide/send-commands-reboot.html) beschrieben.
+ Die Anwendung speichert die aktuellen Daten`executionstate`, konfiguriert einen Neustart-Trigger, um die Anwendung erneut auszuführen, und startet das System neu.

Nach dem Systemneustart führt die Anwendung denselben Schritt aus, der den Neustart initiiert hat. Wenn Sie diese Funktionalität benötigen, müssen Sie idempotente Skripten schreiben, die mehrere Aufrufe desselben Shell-Befehls verarbeiten können.


**Input**  

| Tastenname | Description | Typ | Erforderlich | 
| --- | --- | --- | --- | 
| commands | Enthält eine Liste von Anweisungen oder Befehlen, die gemäß der Bash-Syntax ausgeführt werden sollen. Mehrzeiliges YAML ist zulässig. | Auflisten | Ja | 

**Eingabebeispiel: Vor und nach einem Neustart**

```
name: ExitCode194Example
description: This shows how the exit code can be used to restart a system with ExecuteBash
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: RestartTrigger
        action: ExecuteBash
        inputs:
          commands:
            - |
              REBOOT_INDICATOR=/var/tmp/reboot-indicator
              if [ -f "${REBOOT_INDICATOR}" ]; then
                echo 'The reboot file exists. Deleting it and exiting with success.'
                rm "${REBOOT_INDICATOR}"
                exit 0
              fi
              echo 'The reboot file does not exist. Creating it and triggering a restart.'
              touch "${REBOOT_INDICATOR}"
              exit 194
```


**Ausgabe**  

| Feld | Description | Typ | 
| --- | --- | --- | 
| stdout | Standardausgabe der Befehlsausführung. | Zeichenfolge | 

Wenn Sie einen Neustart starten und den Exit-Code `194` als Teil des Aktionsmoduls zurückgeben, wird der Build mit demselben Aktionsmodulschritt fortgesetzt, der den Neustart initiiert hat. Wenn Sie einen Neustart ohne den Exit-Code starten, schlägt der Build-Prozess möglicherweise fehl.

**Ausgabebeispiel: Vor dem Neustart (zum ersten Mal über das Dokument)**

```
{
	“stdout”: “The reboot file does not exist. Creating it and triggering a restart."
}
```

**Ausgabebeispiel: Nach dem Neustart (zweites Mal durch das Dokument)**

```
{
	“stdout”: “The reboot file exists. Deleting it and exiting with success."
}
```

### ExecuteBinary (Linux, Windows, macOS)
<a name="action-modules-executebinary"></a>

Das **ExecuteBinary**Aktionsmodul ermöglicht es Ihnen, Binärdateien mit einer Liste von Befehlszeilenargumenten auszuführen.

Das **ExecuteBinary**Modul verarbeitet Systemneustarts, wenn die Binärdatei mit dem Exit-Code `194` (Linux) oder `3010` (Windows) beendet wird. In diesem Fall führt das Programm eine der folgenden Aktionen aus:
+ Die Anwendung übergibt dem Aufrufer den Exit-Code, wenn er vom Systems Manager Agent ausgeführt wird. Der Systems Manager Agent übernimmt den Neustart des Systems und führt denselben Schritt aus, der den Neustart initiiert hat, wie unter [Managed Instance from Scripts neu starten](https://docs.aws.amazon.com/systems-manager/latest/userguide/send-commands-reboot.html) beschrieben.
+ Die Anwendung speichert den aktuellen Status`executionstate`, konfiguriert einen Neustart-Trigger, um die Anwendung erneut auszuführen, und startet das System neu.

Nach dem Neustart des Systems führt die Anwendung denselben Schritt aus, der den Neustart initiiert hat. Wenn Sie diese Funktionalität benötigen, müssen Sie idempotente Skripten schreiben, die mehrere Aufrufe desselben Shell-Befehls verarbeiten können.


**Input**  

| Tastenname | Description | Typ | Erforderlich | 
| --- | --- | --- | --- | 
| path | Der Pfad zur Binärdatei für die Ausführung. | Zeichenfolge | Ja | 
| arguments | Enthält eine Liste von Befehlszeilenargumenten, die beim Ausführen der Binärdatei verwendet werden sollen. | Liste der Zeichenketten | Nein | 

**Eingabebeispiel: .NET installieren**

```
  - name: "InstallDotnet"
    action: ExecuteBinary
    inputs:
      path: C:\PathTo\dotnet_installer.exe
      arguments:
        - /qb
        - /norestart
```


**Ausgabe**  

| Feld | Description | Typ | 
| --- | --- | --- | 
| stdout | Standardausgabe der Befehlsausführung. | Zeichenfolge | 

**Output example**

```
{
	"stdout": "success"
}
```

### ExecuteDocument (Linux, Windows, macOS)
<a name="action-modules-executedocument"></a>

Das **ExecuteDocument**Aktionsmodul bietet Unterstützung für verschachtelte Komponentendokumente, sodass mehrere Komponentendokumente aus einem Dokument ausgeführt werden. AWSTOE validiert das Dokument, das zur Laufzeit im Eingabeparameter übergeben wird.

**Einschränkungen**
+ Dieses Aktionsmodul wird einmal ausgeführt. Wiederholungen sind nicht zulässig und es besteht keine Option zum Festlegen von Timeoutlimits. **ExecuteDocument**legt die folgenden Standardwerte fest und gibt einen Fehler zurück, wenn Sie versuchen, sie zu ändern.
  + `timeoutSeconds`: -1
  + `maxAttempts`: 1
**Anmerkung**  
Sie können diese Werte leer lassen und AWSTOE die Standardwerte verwenden.
+ Das Verschachteln von Dokumenten ist bis zu drei Ebenen zulässig, jedoch nicht mehr. Drei Verschachtelungsebenen bedeuten vier Dokumentebenen, da die oberste Ebene nicht verschachtelt ist. In diesem Szenario darf das Dokument der untersten Ebene keine anderen Dokumente aufrufen.
+ Die zyklische Ausführung von Komponentendokumenten ist nicht zulässig. Jedes Dokument, das sich selbst außerhalb eines sich wiederholenden Konstrukts aufruft oder ein anderes Dokument aufruft, das in der aktuellen Ausführungskette weiter oben steht, leitet einen Zyklus ein, der zu einer Endlosschleife führen kann. Wenn eine zyklische Ausführung AWSTOE erkannt wird, stoppt es die Ausführung und zeichnet den Fehler auf.

![\[Einschränkungen auf Verschachtelungsebene für das ExecuteDocument Aktionsmodul.\]](http://docs.aws.amazon.com/de_de/imagebuilder/latest/userguide/images/toe-component-document-nesting.png)


Wenn ein Komponentendokument versucht, sich selbst oder eines der Komponentendokumente auszuführen, die in der aktuellen Ausführungskette weiter oben stehen, schlägt die Ausführung fehl.

**Eingabe**


| Tastenname | Description | Typ | Erforderlich | 
| --- | --- | --- | --- | 
| document |  Pfad des Komponentendokuments. Gültige Optionen sind unter anderem: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/imagebuilder/latest/userguide/toe-action-modules.html)  | Zeichenfolge | Ja | 
| document-s3-bucket-owner |  Die Konto-ID des S3-Bucket-Besitzers für den S3-Bucket, in dem Komponentendokumente gespeichert sind. *(Empfohlen, wenn Sie S3 URIs in Ihrem Komponentendokument verwenden.)*  | Zeichenfolge | Nein | 
| phases |  Phasen, die im Komponentendokument ausgeführt werden sollen, ausgedrückt als kommagetrennte Liste. Wenn keine Phasen angegeben sind, werden alle Phasen ausgeführt.  | Zeichenfolge | Nein | 
| parameters |  Eingabeparameter, die zur Laufzeit als Schlüssel-Wert-Paare an das Komponentendokument übergeben werden.  | Liste der Parameterzuordnungen | Nein | 

**Eingabe der Parameterzuweisung**


| Tastenname | Description | Typ | Erforderlich | 
| --- | --- | --- | --- | 
| name |  Der Name des Eingabeparameters, der an das Komponentendokument übergeben werden soll, das das **ExecuteDocument**Aktionsmodul ausführt.  | Zeichenfolge | Ja | 
| value |  Der Wert des Eingabeparameters.  | Zeichenfolge | Ja | 

**Beispiele für die Eingabe**  
Die folgenden Beispiele zeigen Variationen der Eingaben für Ihr Komponentendokument, abhängig von Ihrem Installationspfad.

**Eingabebeispiel: Lokaler Dokumentpfad**

```
# main.yaml
schemaVersion: 1.0

phases:
  - name: build
    steps:
      - name: ExecuteNestedDocument
        action: ExecuteDocument
        inputs:
          document: Sample-1.yaml
          phases: build
          parameters:
            - name: parameter-1
              value: value-1
            - name: parameter-2
              value: value-2
```

**Eingabebeispiel: S3-URI als Dokumentenpfad**

```
# main.yaml
schemaVersion: 1.0

phases:
  - name: build
    steps:
      - name: ExecuteNestedDocument
        action: ExecuteDocument
        inputs:
          document: s3://my-bucket/Sample-1.yaml
          document-s3-bucket-owner: 123456789012
          phases: build,validate
          parameters:
            - name: parameter-1
              value: value-1
            - name: parameter-2
              value: value-2
```

**Eingabebeispiel: ARN der EC2 Image Builder Builder-Komponente als Dokumentpfad**

```
# main.yaml
schemaVersion: 1.0

phases:
  - name: build
    steps:
      - name: ExecuteNestedDocument
        action: ExecuteDocument
        inputs:
          document: arn:aws:imagebuilder:us-west-2:aws:component/Sample-Test/1.0.0
          phases: test
          parameters:
            - name: parameter-1
              value: value-1
            - name: parameter-2
              value: value-2
```

**Verwenden einer ForEach Schleife zum Ausführen von Dokumenten**

```
# main.yaml
schemaVersion: 1.0

phases:
  - name: build
    steps:
      - name: ExecuteNestedDocument
        action: ExecuteDocument
        loop:
          name: 'myForEachLoop'
          forEach:
            - Sample-1.yaml
            - Sample-2.yaml
        inputs:
          document: "{{myForEachLoop.value}}"
          phases: test
          parameters:
            - name: parameter-1
              value: value-1
            - name: parameter-2
              value: value-2
```

**Verwenden einer For-Schleife zum Ausführen von Dokumenten**

```
# main.yaml
schemaVersion: 1.0

phases:
  - name: build
    steps:
      - name: ExecuteNestedDocument
        action: ExecuteDocument
        loop:
          name: 'myForLoop'
          for:
            start: 1
            end: 2
            updateBy: 1
        inputs:
          document: "Sample-{{myForLoop.value}}.yaml"
          phases: test
          parameters:
            - name: parameter-1
              value: value-1
            - name: parameter-2
              value: value-2
```

**Ausgabe**  
AWSTOE erstellt eine Ausgabedatei, die `detailedoutput.json` bei jeder Ausführung aufgerufen wird. Die Datei enthält Details zu jeder Phase und jedem Schritt jedes Komponentendokuments, das während der Ausführung aufgerufen wird. Für das **ExecuteDocument**Aktionsmodul finden Sie in dem `outputs` Feld eine kurze Zusammenfassung der Laufzeit sowie Einzelheiten zu den Phasen, Schritten und Dokumenten, in denen es ausgeführt wird. `detailedOutput`

```
{
	\"executedStepCount\":1,\"executionId\":\"97054e22-06cc-11ec-9b14-acde48001122\",\"failedStepCount\":0,\"failureMessage\":\"\",\"ignoredFailedStepCount\":0,\"logUrl\":\"\",\"status\":\"success\"
}",
```

Das Ausgabe-Übersichtsobjekt jedes Komponentendokuments enthält die folgenden Details, wie hier gezeigt, mit Beispielwerten:
+ executedStepCount„:1
+ „Ausführungs-ID“: „12345a67-89bc-01de-2f34-abcd56789012"
+ failedStepCount„: 0
+ „Fehlermeldung“: "“
+ „ignoredFailedStepAnzahl“ :0
+ „Protokoll-URL“: "“
+ „status“: „erfolgreich“

**Ausgabebeispiel**  
Das folgende Beispiel zeigt die Ausgabe des **ExecuteDocument**Aktionsmoduls, wenn eine verschachtelte Ausführung stattfindet. In diesem Beispiel führt das `main.yaml` Komponentendokument das Komponentendokument erfolgreich aus. `Sample-1.yaml`

```
{
    "executionId": "12345a67-89bc-01de-2f34-abcd56789012",
    "status": "success",
    "startTime": "2021-08-26T17:20:31-07:00",
    "endTime": "2021-08-26T17:20:31-07:00",
    "failureMessage": "",
    "documents": [
        {
            "name": "",
            "filePath": "main.yaml",
            "status": "success",
            "description": "",
            "startTime": "2021-08-26T17:20:31-07:00",
            "endTime": "2021-08-26T17:20:31-07:00",
            "failureMessage": "",
            "phases": [
                {
                    "name": "build",
                    "status": "success",
                    "startTime": "2021-08-26T17:20:31-07:00",
                    "endTime": "2021-08-26T17:20:31-07:00",
                    "failureMessage": "",
                    "steps": [
                        {
                            "name": "ExecuteNestedDocument",
                            "status": "success",
                            "failureMessage": "",
                            "timeoutSeconds": -1,
                            "onFailure": "Abort",
                            "maxAttempts": 1,
                            "action": "ExecuteDocument",
                            "startTime": "2021-08-26T17:20:31-07:00",
                            "endTime": "2021-08-26T17:20:31-07:00",
                            "inputs": "[{\"document\":\"Sample-1.yaml\",\"document-s3-bucket-owner\":\"\",\"phases\":\"\",\"parameters\":null}]",
                            "outputs": "[{\"executedStepCount\":1,\"executionId\":\"98765f43-21ed-09cb-8a76-fedc54321098\",\"failedStepCount\":0,\"failureMessage\":\"\",\"ignoredFailedStepCount\":0,\"logUrl\":\"\",\"status\":\"success\"}]",
                            "loop": null,
                            "detailedOutput": [
                                {
                                    "executionId": "98765f43-21ed-09cb-8a76-fedc54321098",
                                    "status": "success",
                                    "startTime": "2021-08-26T17:20:31-07:00",
                                    "endTime": "2021-08-26T17:20:31-07:00",
                                    "failureMessage": "",
                                    "documents": [
                                        {
                                            "name": "",
                                            "filePath": "Sample-1.yaml",
                                            "status": "success",
                                            "description": "",
                                            "startTime": "2021-08-26T17:20:31-07:00",
                                            "endTime": "2021-08-26T17:20:31-07:00",
                                            "failureMessage": "",
                                            "phases": [
                                                {
                                                    "name": "build",
                                                    "status": "success",
                                                    "startTime": "2021-08-26T17:20:31-07:00",
                                                    "endTime": "2021-08-26T17:20:31-07:00",
                                                    "failureMessage": "",
                                                    "steps": [
                                                        {
                                                            "name": "ExecuteBashStep",
                                                            "status": "success",
                                                            "failureMessage": "",
                                                            "timeoutSeconds": 7200,
                                                            "onFailure": "Abort",
                                                            "maxAttempts": 1,
                                                            "action": "ExecuteBash",
                                                            "startTime": "2021-08-26T17:20:31-07:00",
                                                            "endTime": "2021-08-26T17:20:31-07:00",
                                                            "inputs": "[{\"commands\":[\"echo \\\"Hello World!\\\"\"]}]",
                                                            "outputs": "[{\"stdout\":\"Hello World!\"}]",
                                                            "loop": null,
                                                            "detailedOutput": null
                                                        }]
                                                }]
                                        }]
                                }]
                        }]
                
                }]
        }]
}
```

### ExecutePowerShell (Windows)
<a name="action-modules-executepowershell"></a>

Das **ExecutePowerShell**Aktionsmodul ermöglicht es Ihnen, PowerShell Skripts mit Inline-Shell-Code/Befehlen auszuführen. Dieses Modul unterstützt die Windows-Plattform und Windows. PowerShell

Alle im Befehlsblock commands/instructions angegebenen Befehle werden in eine Skriptdatei konvertiert (z. B.`input.ps1`) und unter Windows ausgeführtPowerShell. Das Ergebnis der Ausführung der Shell-Datei ist der Exit-Code.

Das **ExecutePowerShell**Modul verarbeitet Systemneustarts, wenn der Shell-Befehl mit dem Exit-Code von beendet wird. `3010` Nach der Initiierung führt das Programm eine der folgenden Aktionen aus: 
+ Übergibt dem Anrufer den Exit-Code, wenn er vom Systems Manager Agent ausgeführt wird. Der Systems Manager Agent führt den Systemneustart durch und führt denselben Schritt aus, der den Neustart initiiert hat, wie unter [Managed Instance from Scripts neu starten](https://docs.aws.amazon.com/systems-manager/latest/userguide/send-commands-reboot.html) beschrieben.
+ Speichert den aktuellen Status`executionstate`, konfiguriert einen Neustart-Trigger, um die Anwendung erneut auszuführen, und startet das System neu.

Nach dem Systemneustart führt die Anwendung denselben Schritt aus, der den Neustart initiiert hat. Wenn Sie diese Funktionalität benötigen, müssen Sie idempotente Skripten schreiben, die mehrere Aufrufe desselben Shell-Befehls verarbeiten können.


**Input**  

| Tastenname | Description | Typ | Erforderlich | 
| --- | --- | --- | --- | 
| commands | Enthält eine Liste von Anweisungen oder Befehlen, die gemäß der Syntax ausgeführt werden sollen. PowerShell Mehrzeiliges YAML ist zulässig. | String-Liste | Ja. Muss `commands` oder angeben`file`, nicht beides.  | 
| file | Enthält den Pfad zu einer PowerShell Skriptdatei. PowerShell wird mit dem -file Befehlszeilenargument gegen diese Datei ausgeführt. Der Pfad muss auf eine .ps1 Datei verweisen. | Zeichenfolge | Ja. Muss `commands` oder`file`, nicht beides, angeben.  | 

**Eingabebeispiel: Vor und nach einem Neustart**

```
name: ExitCode3010Example
description: This shows how the exit code can be used to restart a system with ExecutePowerShell
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: RestartTrigger
        action: ExecutePowerShell
        inputs:
          commands:
            - |
              $rebootIndicator = Join-Path -Path $env:SystemDrive -ChildPath 'reboot-indicator'
              if (Test-Path -Path $rebootIndicator) {
                Write-Host 'The reboot file exists. Deleting it and exiting with success.'
                Remove-Item -Path $rebootIndicator -Force | Out-Null
                [System.Environment]::Exit(0)
              }
              Write-Host 'The reboot file does not exist. Creating it and triggering a restart.'
              New-Item -Path $rebootIndicator -ItemType File | Out-Null
              [System.Environment]::Exit(3010)
```


**Ausgabe**  

| Feld | Description | Typ | 
| --- | --- | --- | 
| stdout | Standardausgabe der Befehlsausführung. | Zeichenfolge | 

Wenn Sie einen Neustart ausführen und den Exit-Code `3010` als Teil des Aktionsmoduls zurückgeben, wird der Build mit demselben Aktionsmodulschritt fortgesetzt, der den Neustart initiiert hat. Wenn Sie einen Neustart ohne den Exit-Code ausführen, schlägt der Build-Prozess möglicherweise fehl.

**Ausgabebeispiel: Vor dem Neustart (zum ersten Mal über das Dokument)**

```
{
	“stdout”: “The reboot file does not exist. Creating it and triggering a restart."
}
```

**Ausgabebeispiel: Nach dem Neustart (zweites Mal durch das Dokument)**

```
{
	“stdout”: “The reboot file exists. Deleting it and exiting with success."
}
```

## Module zum Herunterladen und Hochladen von Dateien
<a name="action-modules-download-upload"></a>

Der folgende Abschnitt enthält Informationen zu Aktionsmodulen, die Dateien hoch- oder herunterladen.

**Topics**
+ [S3 herunterladen (Linux, Windows, macOS)](#action-modules-s3download)
+ [S3 hochladen (Linux, Windows, macOS)](#action-modules-s3upload)
+ [WebDownload (Linux, Windows, macOS)](#action-modules-webdownload)

### S3 herunterladen (Linux, Windows, macOS)
<a name="action-modules-s3download"></a>

Mit dem `S3Download` Aktionsmodul können Sie ein Amazon S3 S3-Objekt oder eine Reihe von Objekten in eine lokale Datei oder einen Ordner herunterladen, den Sie mit dem `destination` Pfad angeben. Wenn am angegebenen Speicherort bereits eine Datei vorhanden ist und das `overwrite` Flag auf true gesetzt ist, wird die Datei `S3Download` überschrieben.

Ihr `source` Standort kann auf ein bestimmtes Objekt in Amazon S3 verweisen, oder Sie können ein key prefix mit einem Sternchen als Platzhalter (`*`) verwenden, um eine Reihe von Objekten herunterzuladen, die dem Schlüsselpräfixpfad entsprechen. Wenn Sie an Ihrem `source` Standort ein key prefix angeben, lädt das `S3Download` Aktionsmodul alles herunter, was dem Präfix entspricht (einschließlich Dateien und Ordner). Stellen Sie sicher, dass das key prefix mit einem Schrägstrich endet, gefolgt von einem Sternchen (`/*`), damit Sie alles herunterladen, was dem Präfix entspricht. Beispiel: `s3://my-bucket/my-folder/*`.

Wenn die `S3Download` Aktion für ein bestimmtes key prefix während eines Downloads fehlschlägt, wird der Ordnerinhalt nicht auf den Zustand vor dem Fehler zurückgesetzt. Der Zielordner bleibt so, wie er zum Zeitpunkt des Fehlers war.

**Unterstützte Anwendungsfälle**  
Das `S3Download` Aktionsmodul unterstützt die folgenden Anwendungsfälle:
+ Das Amazon S3 S3-Objekt wird in einen lokalen Ordner heruntergeladen, wie im Download-Pfad angegeben.
+ Amazon S3 S3-Objekte (mit einem key prefix im Amazon S3 S3-Dateipfad) werden in den angegebenen lokalen Ordner heruntergeladen, der rekursiv alle Amazon S3 S3-Objekte, die dem key prefix entsprechen, in den lokalen Ordner kopiert.

**IAM-Anforderungen**  
Die IAM-Rolle, die Sie Ihrem Instanzprofil zuordnen, muss über Berechtigungen zum Ausführen des `S3Download` Aktionsmoduls verfügen. Die folgenden IAM-Richtlinien müssen der IAM-Rolle angehängt werden, die dem Instanzprofil zugeordnet ist:
+ **Einzelne Datei**: `s3:GetObject` gegen bucket/object (zum Beispiel). `arn:aws:s3:::BucketName/*`
+ **Mehrere Dateien**: `s3:ListBucket` gegen bucket/object (zum Beispiel`arn:aws:s3:::BucketName`) und `s3:GetObject` gegen die bucket/object (zum Beispiel`arn:aws:s3:::BucketName/*`).


**Input**  

|  Key (Schlüssel)  |  Description  |  Typ  |  Erforderlich  |  Standard  | 
| --- | --- | --- | --- | --- | 
|  `source`  |  Der Amazon S3 S3-Bucket, der die Quelle für Ihren Download ist. Sie können einen Pfad zu einem bestimmten Objekt angeben oder ein key prefix verwenden, das mit einem Schrägstrich endet, gefolgt von einem Sternchen-Platzhalter (`/*`), um eine Gruppe von Objekten herunterzuladen, die dem key prefix entsprechen.  |  Zeichenfolge  |  Ja  |  –  | 
|  `destination`  |  Der lokale Pfad, in den die Amazon S3 S3-Objekte heruntergeladen werden. Um eine einzelne Datei herunterzuladen, müssen Sie den Dateinamen als Teil des Pfads angeben. Beispiel, `/myfolder/package.zip`.  |  Zeichenfolge  |  Ja  |  –  | 
|  `expectedBucketOwner`  |  Erwartete Besitzerkonto-ID des im `source` Pfad angegebenen Buckets. Wir empfehlen Ihnen, die Inhaberschaft des in der Quelle angegebenen Amazon S3 S3-Buckets zu überprüfen.  |  Zeichenfolge  |  Nein  |  –  | 
|  `overwrite`  |  Wenn diese Einstellung auf true gesetzt ist und bereits eine Datei mit demselben Namen im Zielordner für den angegebenen lokalen Pfad existiert, überschreibt die Download-Datei die lokale Datei. Wenn der Wert auf false gesetzt ist, ist die vorhandene Datei auf dem lokalen System davor geschützt, überschrieben zu werden, und das Aktionsmodul schlägt mit einem Download-Fehler fehl. Beispiel: `Error: S3Download: File already exists and "overwrite" property for "destination" file is set to false. Cannot download.`  |  Boolesch  |  Nein  |  true  | 

**Anmerkung**  
In den folgenden Beispielen kann der Windows-Ordnerpfad durch einen Linux-Pfad ersetzt werden. `C:\myfolder\package.zip`Kann beispielsweise durch ersetzt werden`/myfolder/package.zip`.

**Eingabebeispiel: Ein Amazon S3 S3-Objekt in eine lokale Datei kopieren**  
Das folgende Beispiel zeigt, wie ein Amazon S3 S3-Objekt in eine lokale Datei kopiert wird.

```
  - name: DownloadMyFile
    action: S3Download
    inputs:
      - source: s3://amzn-s3-demo-source-bucket/path/to/package.zip
        destination: C:\myfolder\package.zip
        expectedBucketOwner: 123456789022
        overwrite: false
      - source: s3://amzn-s3-demo-source-bucket/path/to/package.zip
        destination: C:\myfolder\package.zip
        expectedBucketOwner: 123456789022
        overwrite: true
      - source: s3://amzn-s3-demo-source-bucket/path/to/package.zip
        destination: C:\myfolder\package.zip
        expectedBucketOwner: 123456789022
```

**Eingabebeispiel: Alle Amazon S3 S3-Objekte in einem Amazon S3 S3-Bucket mit key prefix in einen lokalen Ordner kopieren**  
Das folgende Beispiel zeigt, wie alle Amazon S3 S3-Objekte in einem Amazon S3-Bucket mit dem key prefix in einen lokalen Ordner kopiert werden. Amazon S3 hat kein Ordnerkonzept, daher werden alle Objekte kopiert, die dem key prefix entsprechen. Die maximale Anzahl von Objekten, die heruntergeladen werden können, beträgt 1000.

```
  - name: MyS3DownloadKeyprefix
    action: S3Download
    maxAttempts: 3
    inputs:
      - source: s3://amzn-s3-demo-source-bucket/path/to/*
        destination: C:\myfolder\
        expectedBucketOwner: 123456789022
        overwrite: false
      - source: s3://amzn-s3-demo-source-bucket/path/to/*
        destination: C:\myfolder\
        expectedBucketOwner: 123456789022
        overwrite: true
      - source: s3://amzn-s3-demo-source-bucket/path/to/*
        destination: C:\myfolder\
        expectedBucketOwner: 123456789022
```

**Ausgabe**  
Keine.

### S3 hochladen (Linux, Windows, macOS)
<a name="action-modules-s3upload"></a>

Mit dem Aktionsmodul **S3Upload** können Sie eine Datei aus einer Quelldatei oder einem Quellordner an einen Amazon S3 S3-Speicherort hochladen. Sie können einen Platzhalter (`*`) in dem für Ihren Quellspeicherort angegebenen Pfad verwenden, um alle Dateien hochzuladen, deren Pfad dem Platzhaltermuster entspricht.

Wenn die rekursive **S3Upload-Aktion** fehlschlägt, verbleiben alle Dateien, die bereits hochgeladen wurden, im Amazon S3-Ziel-Bucket.

**Unterstützte Anwendungsfälle**
+ Lokale Datei zum Amazon S3 S3-Objekt.
+ Lokale Dateien im Ordner (mit Platzhalter) zum Amazon S3 S3-Schlüsselpräfix.
+ Kopieren Sie den lokalen Ordner (muss auf `recurse` eingestellt sein`true`) in das Amazon S3 S3-Schlüsselpräfix.

**IAM-Anforderungen**  
Die IAM-Rolle, die Sie Ihrem Instanzprofil zuordnen, muss über Berechtigungen zum Ausführen des `S3Upload` Aktionsmoduls verfügen. Die folgende IAM-Richtlinie muss der IAM-Rolle angehängt werden, die dem Instanzprofil zugeordnet ist. Die Richtlinie muss dem Amazon S3 S3-Ziel-Bucket `s3:PutObject` Berechtigungen gewähren. Beispiel, `arn:aws:s3:::BucketName/*`).


**Input**  

|  Key (Schlüssel)  |  Description  |  Typ  |  Erforderlich  |  Standard  | 
| --- | --- | --- | --- | --- | 
|  `source`  |  Der lokale Pfad, aus dem die Quelle files/folders stammt. Der `source` unterstützt einen Sternchen-Platzhalter ()`*`.  |  Zeichenfolge  |  Ja  |  –  | 
|  `destination`  |  Der Pfad für den Amazon S3-Ziel-Bucket, in den Quelldateien/-ordner hochgeladen werden.  |  Zeichenfolge  |  Ja  |  –  | 
|  `recurse`  |  Wenn auf gesetzt, wird `true` **S3Upload** rekursiv ausgeführt.  |  Zeichenfolge  |  Nein  |  `false`  | 
|  `expectedBucketOwner`  |  Die erwartete Besitzerkonto-ID für den Amazon S3 S3-Bucket, der im Zielpfad angegeben ist. Wir empfehlen Ihnen, die Inhaberschaft des Amazon S3 S3-Buckets zu überprüfen, der im Ziel angegeben ist.  |  Zeichenfolge  |  Nein  |  –  | 

**Eingabebeispiel: Eine lokale Datei in ein Amazon S3 S3-Objekt kopieren**  
Das folgende Beispiel zeigt, wie eine lokale Datei in ein Amazon S3 S3-Objekt kopiert wird.

```
  - name: MyS3UploadFile
    action: S3Upload
    onFailure: Abort
    maxAttempts: 3
    inputs:
      - source: C:\myfolder\package.zip
        destination: s3://amzn-s3-demo-destination-bucket/path/to/package.zip
        expectedBucketOwner: 123456789022
```

**Eingabebeispiel: Kopieren Sie alle Dateien in einem lokalen Ordner in einen Amazon S3 S3-Bucket mit key prefix**  
Das folgende Beispiel zeigt, wie Sie alle Dateien im lokalen Ordner in einen Amazon S3 S3-Bucket mit key prefix kopieren. In diesem Beispiel werden keine Unterordner oder deren Inhalt kopiert, da dies nicht angegeben `recurse` ist. Die Standardeinstellung ist. `false`

```
  - name: MyS3UploadMultipleFiles
    action: S3Upload
    onFailure: Abort
    maxAttempts: 3
    inputs:
      - source: C:\myfolder\*
        destination: s3://amzn-s3-demo-destination-bucket/path/to/
        expectedBucketOwner: 123456789022
```

**Eingabebeispiel: Alle Dateien und Ordner rekursiv von einem lokalen Ordner in einen Amazon S3 S3-Bucket kopieren**  
Das folgende Beispiel zeigt, wie alle Dateien und Ordner rekursiv von einem lokalen Ordner in einen Amazon S3 S3-Bucket mit key prefix kopiert werden.

```
  - name: MyS3UploadFolder
    action: S3Upload
    onFailure: Abort
    maxAttempts: 3
    inputs:
      - source: C:\myfolder\*
        destination: s3://amzn-s3-demo-destination-bucket/path/to/
        recurse: true
        expectedBucketOwner: 123456789022
```

**Ausgabe**  
Keine.

### WebDownload (Linux, Windows, macOS)
<a name="action-modules-webdownload"></a>

Mit dem **WebDownload**Aktionsmodul können Sie Dateien und Ressourcen über das HTTP/HTTPS Protokoll von einem entfernten Standort herunterladen (*HTTPS wird empfohlen*). Die Anzahl oder Größe der Downloads ist unbegrenzt. Dieses Modul verarbeitet Wiederholungsversuche und exponentielle Backoff-Logik. 

Jedem Download-Vorgang werden je nach Benutzereingabe maximal 5 Versuche zugewiesen, um erfolgreich zu sein. Diese Versuche unterscheiden sich von den im `maxAttempts` Dokumentfeld angegebenen Versuchen`steps`, die sich auf Fehler im Aktionsmodul beziehen.

Dieses Aktionsmodul verarbeitet implizit Weiterleitungen. Alle HTTP-Statuscodes mit Ausnahme `200` von führen zu einem Fehler.


**Input**  

| Tastenname | Description | Typ | Erforderlich | Standard | 
| --- | --- | --- | --- | --- | 
| source | Die gültige HTTP/HTTPS URL (HTTPS wird empfohlen), die dem RFC 3986-Standard entspricht. Verkettungsausdrücke sind zulässig. | Zeichenfolge |  Ja  | – | 
| destination | Ein absoluter oder relativer Datei- oder Ordnerpfad auf dem lokalen System. Ordnerpfade müssen mit enden/. Wenn sie nicht mit enden/, werden sie als Dateipfade behandelt. Das Modul erstellt alle erforderlichen Dateien oder Ordner für erfolgreiche Downloads. Verkettungsausdrücke sind zulässig. | Zeichenfolge | Ja | – | 
| overwrite | Wenn diese Option aktiviert ist, werden alle vorhandenen Dateien auf dem lokalen System mit der heruntergeladenen Datei oder Ressource überschrieben. Wenn diese Option nicht aktiviert ist, werden alle vorhandenen Dateien auf dem lokalen System nicht überschrieben, und das Aktionsmodul schlägt mit einem Fehler fehl. Wenn Überschreiben aktiviert ist und Prüfsumme und Algorithmus angegeben sind, lädt das Aktionsmodul die Datei nur herunter, wenn die Prüfsumme und der Hash aller bereits vorhandenen Dateien nicht übereinstimmen.  | Boolesch | Nein | true | 
| checksum | Wenn Sie die Prüfsumme angeben, wird sie mit dem Hash der heruntergeladenen Datei verglichen, der mit dem mitgelieferten Algorithmus generiert wurde. Damit die Dateiüberprüfung aktiviert werden kann, müssen sowohl die Prüfsumme als auch der Algorithmus angegeben werden. Verkettungsausdrücke sind zulässig.  | Zeichenfolge | Nein | – | 
| algorithm | Der zur Berechnung der Prüfsumme verwendete Algorithmus. Die Optionen sindMD5, SHA1 SHA256, und SHA512. Damit die Dateiüberprüfung aktiviert werden kann, müssen sowohl die Prüfsumme als auch der Algorithmus angegeben werden. Verkettungsausdrücke sind zulässig.  | Zeichenfolge | Nein | – | 
| ignoreCertificateErrors | Die SSL-Zertifikatsvalidierung wird ignoriert, wenn sie aktiviert ist. | Boolesch | Nein | false | 


**Ausgabe**  

| Tastenname | Description | Typ | 
| --- | --- | --- | 
| destination | Zeichenfolge mit Zeilenumbruch, die durch Zeichen getrennt ist und den Zielpfad angibt, in dem die heruntergeladenen Dateien oder Ressourcen gespeichert werden. | Zeichenfolge | 

**Eingabebeispiel: Laden Sie die Remote-Datei in ein lokales Ziel herunter**

```
  - name: DownloadRemoteFile
    action: WebDownload
    maxAttempts: 3
    inputs:
      - source: https://testdomain/path/to/java14.zip
        destination: C:\testfolder\package.zip
```

**Ausgabe:**

```
{
	"destination": "C:\\testfolder\\package.zip"
}
```

**Eingabebeispiel: Laden Sie mehr als eine Remote-Datei an mehr als ein lokales Ziel herunter**

```
  - name: DownloadRemoteFiles
    action: WebDownload
    maxAttempts: 3
    inputs:
      - source: https://testdomain/path/to/java14.zip
        destination: /tmp/java14_renamed.zip
      - source: https://testdomain/path/to/java14.zip
        destination: /tmp/create_new_folder_and_add_java14_as_zip/
```

**Ausgabe:**

```
{
	"destination": "/tmp/create_new_folder/java14_renamed.zip\n/tmp/create_new_folder_and_add_java14_as_zip/java14.zip"
}
```

**Eingabebeispiel: Laden Sie eine Remote-Datei herunter, ohne das lokale Ziel zu überschreiben, und laden Sie eine weitere Remote-Datei mit Dateiüberprüfung herunter**

```
  - name: DownloadRemoteMultipleProperties
    action: WebDownload
    maxAttempts: 3
    inputs:
      - source: https://testdomain/path/to/java14.zip
        destination: C:\create_new_folder\java14_renamed.zip
        overwrite: false
      - source: https://testdomain/path/to/java14.zip
        destination: C:\create_new_folder_and_add_java14_as_zip\
        checksum: ac68bbf921d953d1cfab916cb6120864
        algorithm: MD5
        overwrite: true
```

**Ausgabe:**

```
{
	"destination": "C:\\create_new_folder\\java14_renamed.zip\nC:\\create_new_folder_and_add_java14_as_zip\\java14.zip"
}
```

**Eingabebeispiel: Remote-Datei herunterladen und SSL-Zertifizierungsvalidierung ignorieren**

```
  - name: DownloadRemoteIgnoreValidation
    action: WebDownload
    maxAttempts: 3
    inputs:
      - source: https://www.bad-ssl.com/resource
        destination: /tmp/downloads/
        ignoreCertificateErrors: true
```

**Ausgabe:**

```
{
	"destination": "/tmp/downloads/resource"
}
```

## Module für den Betrieb des Dateisystems
<a name="action-modules-file-system-operations"></a>

Der folgende Abschnitt enthält Einzelheiten zu Aktionsmodulen, die Dateisystemoperationen ausführen.

**Topics**
+ [AppendFile (Linux, Windows, macOS)](#action-modules-appendfile)
+ [CopyFile (Linux, Windows, macOS)](#action-modules-copyfile)
+ [CopyFolder (Linux, Windows, macOS)](#action-modules-copyfolder)
+ [CreateFile (Linux, Windows, macOS)](#action-modules-createfile)
+ [CreateFolder (Linux, Windows, macOS)](#action-modules-createfolder)
+ [CreateSymlink (Linux, Windows, macOS)](#action-modules-createsymlink)
+ [DeleteFile (Linux, Windows, macOS)](#action-modules-deletefile)
+ [DeleteFolder (Linux, Windows, macOS)](#action-modules-deletefolder)
+ [ListFiles (Linux, Windows, macOS)](#action-modules-listfiles)
+ [MoveFile (Linux, Windows, macOS)](#action-modules-movefile)
+ [MoveFolder (Linux, Windows, macOS)](#action-modules-movefolder)
+ [ReadFile (Linux, Windows, macOS)](#action-modules-readfile)
+ [SetFileEncoding (Linux, Windows, macOS)](#action-modules-setfileencoding)
+ [SetFileOwner (Linux, Windows, macOS)](#action-modules-setfileowner)
+ [SetFolderOwner (Linux, Windows, macOS)](#action-modules-setfolderowner)
+ [SetFilePermissions (Linux, Windows, macOS)](#action-modules-setfilepermissions)
+ [SetFolderPermissions (Linux, Windows, macOS)](#action-modules-setfolderpermissions)

### AppendFile (Linux, Windows, macOS)
<a name="action-modules-appendfile"></a>

Das **AppendFile**Aktionsmodul fügt dem bereits vorhandenen Inhalt einer Datei den angegebenen Inhalt hinzu.

Wenn sich der Dateicodierungswert vom Standardwert encoding (`utf-8`) unterscheidet, können Sie den Dateicodierungswert mithilfe der `encoding` Option angeben. Standardmäßig wird davon ausgegangen, `utf-16` dass `utf-32` sie die Little-Endian-Kodierung verwenden. 

Das Aktionsmodul gibt einen Fehler zurück, wenn Folgendes eintritt:
+ Die angegebene Datei ist zur Laufzeit nicht vorhanden.
+ Sie haben keine Schreibberechtigungen, um den Dateiinhalt zu ändern.
+ Das Modul stößt während des Dateivorgangs auf einen Fehler.


**Input**  

| Tastenname | Description | Typ | Erforderlich | Standardwert | Zulässige Werte | Wird auf allen Plattformen unterstützt | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | Der Dateipfad. | Zeichenfolge | Ja | – | – | Ja | 
| content | Der Inhalt, der an die Datei angehängt werden soll. | Zeichenfolge | Nein | Leere Zeichenfolge | – | Ja | 
| encoding | Der Kodierungsstandard. | Zeichenfolge | Nein | utf8 | utf8,utf-8,utf16,utf-16,utf16-LE, utf-16-LEutf16-BE,utf-16-BE,utf32,utf-32,utf32-LE,utf-32-LE,utf32-BE, und utf-32-BE. Der Wert der Kodierungsoption unterscheidet nicht zwischen Groß- und Kleinschreibung. | Ja | 

**Eingabebeispiel: Datei ohne Kodierung anhängen (Linux)**

```
  - name: AppendingFileWithOutEncodingLinux
    action: AppendFile
    inputs:
      - path: ./Sample.txt
        content: "The string to be appended to the file"
```

**Eingabebeispiel: Datei ohne Kodierung anhängen (Windows)**

```
  - name: AppendingFileWithOutEncodingWindows
    action: AppendFile
    inputs:
      - path: C:\MyFolder\MyFile.txt
        content: "The string to be appended to the file"
```

**Eingabebeispiel: Datei mit Kodierung anhängen (Linux)**

```
  - name: AppendingFileWithEncodingLinux
    action: AppendFile
    inputs:
      - path: /FolderName/SampleFile.txt
        content: "The string to be appended to the file"
        encoding: UTF-32
```

**Eingabebeispiel: Datei mit Kodierung anhängen (Windows)**

```
  - name: AppendingFileWithEncodingWindows
    action: AppendFile
    inputs:
      - path: C:\MyFolderName\SampleFile.txt
        content: "The string to be appended to the file"
        encoding: UTF-32
```

**Eingabebeispiel: Datei mit leerer Zeichenfolge anhängen (Linux)**

```
  - name: AppendingEmptyStringLinux
    action: AppendFile
    inputs:
      - path: /FolderName/SampleFile.txt
```

**Eingabebeispiel: Datei mit leerer Zeichenfolge anhängen (Windows)**

```
  - name: AppendingEmptyStringWindows
    action: AppendFile
    inputs:
      - path: C:\MyFolderName\SampleFile.txt
```

**Ausgabe**  
Keine.

### CopyFile (Linux, Windows, macOS)
<a name="action-modules-copyfile"></a>

Das **CopyFile**Aktionsmodul kopiert Dateien von der angegebenen Quelle zum angegebenen Ziel. Standardmäßig erstellt das Modul den Zielordner rekursiv, wenn er zur Laufzeit nicht vorhanden ist.

Wenn eine Datei mit dem angegebenen Namen bereits im angegebenen Ordner vorhanden ist, überschreibt das Aktionsmodul standardmäßig die vorhandene Datei. Sie können dieses Standardverhalten außer Kraft setzen, indem Sie die Option Überschreiben auf setzen. `false` Wenn die Option zum Überschreiben auf `false` gesetzt ist und sich am angegebenen Speicherort bereits eine Datei mit dem angegebenen Namen befindet, gibt das Aktionsmodul einen Fehler zurück. Diese Option funktioniert genauso wie der `cp` Befehl unter Linux, der standardmäßig überschreibt.

Der Name der Quelldatei kann einen Platzhalter () `*` enthalten. Platzhalterzeichen werden nur nach dem letzten Dateipfad-Trennzeichen (`/`oder`\`) akzeptiert. Wenn der Quelldateiname Platzhalterzeichen enthält, werden alle Dateien, die dem Platzhalter entsprechen, in den Zielordner kopiert. Wenn Sie mehr als eine Datei mithilfe eines Platzhalterzeichens verschieben möchten, muss die Eingabe für die `destination` Option mit einem Dateipfadtrennzeichen (`/`oder`\`) enden, das angibt, dass es sich bei der Zieleingabe um einen Ordner handelt.

Wenn sich der Zieldateiname vom Quelldateinamen unterscheidet, können Sie den Zieldateinamen mithilfe der `destination` Option angeben. Wenn Sie keinen Zieldateinamen angeben, wird der Name der Quelldatei verwendet, um die Zieldatei zu erstellen. Jeder Text, der auf das letzte Dateipfadtrennzeichen (`/`oder`\`) folgt, wird als Dateiname behandelt. Wenn Sie denselben Dateinamen wie die Quelldatei verwenden möchten, muss die Eingabe der `destination` Option mit einem Dateipfadtrennzeichen (`/`oder`\`) enden. 

Das Aktionsmodul gibt einen Fehler zurück, wenn Folgendes eintritt:
+ Sie sind nicht berechtigt, eine Datei im angegebenen Ordner zu erstellen.
+ Die Quelldateien sind zur Laufzeit nicht vorhanden.
+ Es gibt bereits einen Ordner mit dem angegebenen Dateinamen und die `overwrite` Option ist auf eingestellt`false`.
+ Das Aktionsmodul stößt bei der Ausführung des Vorgangs auf einen Fehler.


**Input**  

| Tastenname | Description | Typ | Erforderlich | Standardwert | Zulässige Werte | Wird auf allen Plattformen unterstützt | 
| --- | --- | --- | --- | --- | --- | --- | 
| source | Der Pfad der Quelldatei. | Zeichenfolge | Ja | – | – | Ja | 
| destination | Der Zieldateipfad. | Zeichenfolge | Ja | – | – | Ja | 
| overwrite | Wenn der Wert auf false gesetzt ist, werden die Zieldateien nicht ersetzt, wenn sich am angegebenen Speicherort bereits eine Datei mit dem angegebenen Namen befindet. | Boolesch | Nein | true | – | Ja | 

**Eingabebeispiel: Eine Datei kopieren (Linux)**

```
  - name: CopyingAFileLinux
    action: CopyFile
    inputs:
      - source: /Sample/MyFolder/Sample.txt
        destination: /MyFolder/destinationFile.txt
```

**Eingabebeispiel: Eine Datei kopieren (Windows)**

```
  - name: CopyingAFileWindows
    action: CopyFile
    inputs:
      - source: C:\MyFolder\Sample.txt
        destination: C:\MyFolder\destinationFile.txt
```

**Eingabebeispiel: Kopiert eine Datei unter Verwendung des Quelldateinamens (Linux)**

```
  - name: CopyingFileWithSourceFileNameLinux
    action: CopyFile
    inputs:
      - source: /Sample/MyFolder/Sample.txt
        destination: /MyFolder/
```

**Eingabebeispiel: Kopieren Sie eine Datei unter Verwendung des Quelldateinamens (Windows)**

```
  - name: CopyingFileWithSourceFileNameWindows
    action: CopyFile
    inputs:
      - source: C:\Sample\MyFolder\Sample.txt
        destination: C:\MyFolder\
```

**Eingabebeispiel: Kopiert eine Datei mit dem Platzhalterzeichen (Linux)**

```
  - name: CopyingFilesWithWildCardLinux
    action: CopyFile
    inputs:
      - source: /Sample/MyFolder/Sample*
        destination: /MyFolder/
```

**Eingabebeispiel: Kopiert eine Datei mit dem Platzhalterzeichen (Windows)**

```
  - name: CopyingFilesWithWildCardWindows
    action: CopyFile
    inputs:
      - source: C:\Sample\MyFolder\Sample*
        destination: C:\MyFolder\
```

**Eingabebeispiel: Eine Datei kopieren, ohne sie zu überschreiben (Linux)**

```
  - name: CopyingFilesWithoutOverwriteLinux
    action: CopyFile
    inputs:
      - source: /Sample/MyFolder/Sample.txt
        destination: /MyFolder/destinationFile.txt
        overwrite: false
```

**Eingabebeispiel: Eine Datei kopieren, ohne sie zu überschreiben (Windows)**

```
  - name: CopyingFilesWithoutOverwriteWindows
    action: CopyFile
    inputs:
      - source: C:\Sample\MyFolder\Sample.txt
        destination: C:\MyFolder\destinationFile.txt
        overwrite: false
```

**Ausgabe**  
Keine.

### CopyFolder (Linux, Windows, macOS)
<a name="action-modules-copyfolder"></a>

Das **CopyFolder**Aktionsmodul kopiert einen Ordner von der angegebenen Quelle zum angegebenen Ziel. Die Eingabe für die `source` Option ist der zu kopierende Ordner, und die Eingabe für die `destination` Option ist der Ordner, in den der Inhalt des Quellordners kopiert wird. Standardmäßig erstellt das Modul den Zielordner rekursiv, wenn er zur Laufzeit nicht vorhanden ist.

Wenn im angegebenen Ordner bereits ein Ordner mit dem angegebenen Namen vorhanden ist, überschreibt das Aktionsmodul standardmäßig den vorhandenen Ordner. Sie können dieses Standardverhalten außer Kraft setzen, indem Sie die Option Überschreiben auf setzen. `false` Wenn die Option zum Überschreiben auf `false` gesetzt ist und sich am angegebenen Speicherort bereits ein Ordner mit dem angegebenen Namen befindet, gibt das Aktionsmodul einen Fehler zurück.

Der Name des Quellordners kann einen Platzhalter () `*` enthalten. Platzhalterzeichen werden nur nach dem letzten Dateipfad-Trennzeichen (`/`oder`\`) akzeptiert. Wenn Platzhalterzeichen im Quellordnernamen enthalten sind, werden alle Ordner, die dem Platzhalter entsprechen, in den Zielordner kopiert. Wenn Sie mehr als einen Ordner mithilfe eines Platzhalterzeichens kopieren möchten, muss die Eingabe für die `destination` Option mit einem Dateipfadtrennzeichen (`/`oder`\`) enden, was darauf hinweist, dass es sich bei der Zieleingabe um einen Ordner handelt.

Wenn sich der Name des Zielordners vom Namen des Quellordners unterscheidet, können Sie den Namen des Zielordners mithilfe der `destination` Option angeben. Wenn Sie keinen Zielordnernamen angeben, wird der Name des Quellordners verwendet, um den Zielordner zu erstellen. Jeder Text, der auf das letzte Dateipfadtrennzeichen (`/`oder`\`) folgt, wird als Ordnername behandelt. Wenn Sie denselben Ordnernamen wie den Quellordner verwenden möchten, muss die Eingabe der `destination` Option mit einem Dateipfadtrennzeichen (`/`oder`\`) enden. 

Das Aktionsmodul gibt einen Fehler zurück, wenn Folgendes eintritt:
+ Sie sind nicht berechtigt, einen Ordner im angegebenen Ordner zu erstellen.
+ Die Quellordner sind zur Laufzeit nicht vorhanden.
+ Es gibt bereits einen Ordner mit dem angegebenen Ordnernamen und die `overwrite` Option ist auf gesetzt`false`.
+ Das Aktionsmodul stößt bei der Ausführung des Vorgangs auf einen Fehler.


**Input**  

| Tastenname | Description | Typ | Erforderlich | Standardwert | Zulässige Werte | Wird auf allen Plattformen unterstützt | 
| --- | --- | --- | --- | --- | --- | --- | 
| source | Der Pfad des Quellordners. | Zeichenfolge | Ja | – | – | Ja | 
| destination | Der Pfad des Zielordners. | Zeichenfolge | Ja | – | – | Ja | 
| overwrite | Wenn der Wert auf False gesetzt ist, werden die Zielordner nicht ersetzt, wenn sich am angegebenen Speicherort bereits ein Ordner mit dem angegebenen Namen befindet. | Boolesch | Nein | true | – | Ja | 

**Eingabebeispiel: Einen Ordner kopieren (Linux)**

```
  - name: CopyingAFolderLinux
    action: CopyFolder
    inputs:
      - source: /Sample/MyFolder/SampleFolder
        destination: /MyFolder/destinationFolder
```

**Eingabebeispiel: Einen Ordner kopieren (Windows)**

```
  - name: CopyingAFolderWindows
    action: CopyFolder
    inputs:
      - source: C:\Sample\MyFolder\SampleFolder
        destination: C:\MyFolder\destinationFolder
```

**Eingabebeispiel: Kopieren Sie einen Ordner unter Verwendung des Quellordnernamens (Linux)**

```
  - name: CopyingFolderSourceFolderNameLinux
    action: CopyFolder
    inputs:
      - source: /Sample/MyFolder/SourceFolder
        destination: /MyFolder/
```

**Eingabebeispiel: Kopieren Sie einen Ordner unter Verwendung des Quellordnernamens (Windows)**

```
  - name: CopyingFolderSourceFolderNameWindows
    action: CopyFolder
    inputs:
      - source: C:\Sample\MyFolder\SampleFolder
        destination: C:\MyFolder\
```

**Eingabebeispiel: Kopieren Sie einen Ordner mit dem Platzhalterzeichen (Linux)**

```
  - name: CopyingFoldersWithWildCardLinux
    action: CopyFolder
    inputs:
      - source: /Sample/MyFolder/Sample*
        destination: /MyFolder/
```

**Eingabebeispiel: Kopieren Sie einen Ordner mit dem Platzhalterzeichen (Windows)**

```
  - name: CopyingFoldersWithWildCardWindows
    action: CopyFolder
    inputs:
      - source: C:\Sample\MyFolder\Sample*
        destination: C:\MyFolder\
```

**Eingabebeispiel: Einen Ordner kopieren, ohne ihn zu überschreiben (Linux)**

```
  - name: CopyingFoldersWithoutOverwriteLinux
    action: CopyFolder
    inputs:
      - source: /Sample/MyFolder/SourceFolder
        destination: /MyFolder/destinationFolder
        overwrite: false
```

**Eingabebeispiel: Einen Ordner kopieren, ohne ihn zu überschreiben (Windows)**

```
  - name: CopyingFoldersWithoutOverwrite
    action: CopyFolder
    inputs:
      - source: C:\Sample\MyFolder\SourceFolder
        destination: C:\MyFolder\destinationFolder
        overwrite: false
```

**Ausgabe**  
Keine.

### CreateFile (Linux, Windows, macOS)
<a name="action-modules-createfile"></a>

Das **CreateFile**Aktionsmodul erstellt eine Datei an einem bestimmten Ort. Standardmäßig erstellt das Modul bei Bedarf auch rekursiv die übergeordneten Ordner.

Wenn die Datei bereits im angegebenen Ordner vorhanden ist, kürzt oder überschreibt das Aktionsmodul standardmäßig die vorhandene Datei. Sie können dieses Standardverhalten außer Kraft setzen, indem Sie die Option Überschreiben auf setzen. `false` Wenn die Option zum Überschreiben auf `false` gesetzt ist und sich am angegebenen Speicherort bereits eine Datei mit dem angegebenen Namen befindet, gibt das Aktionsmodul einen Fehler zurück.

Wenn sich der Wert für die Dateikodierung vom Standardwert für die Kodierung (`utf-8`) unterscheidet, können Sie den Wert für die Dateikodierung mithilfe der `encoding` Option angeben. Standardmäßig wird davon ausgegangen, `utf-16` dass `utf-32` sie die Little-Endian-Kodierung verwenden. 

`owner`, und sind `group` optionale Eingaben. `permissions` Die Eingabe für `permissions` muss ein Zeichenkettenwert sein. Dateien werden mit Standardwerten erstellt, wenn sie nicht angegeben werden. Diese Optionen werden auf Windows-Plattformen nicht unterstützt. Dieses Aktionsmodul validiert und gibt einen Fehler zurück, wenn die `permissions` Optionen `owner``group`, und auf Windows-Plattformen verwendet werden.

Dieses Aktionsmodul kann eine Datei mit Berechtigungen erstellen, die durch den `umask` Standardwert des Betriebssystems definiert sind. Sie müssen den `umask` Wert festlegen, wenn Sie den Standardwert überschreiben möchten.

Das Aktionsmodul gibt einen Fehler zurück, wenn Folgendes eintritt:
+ Sie sind nicht berechtigt, eine Datei oder einen Ordner im angegebenen übergeordneten Ordner zu erstellen.
+ Das Aktionsmodul stößt bei der Ausführung des Vorgangs auf einen Fehler.


**Input**  

| Tastenname | Description | Typ | Erforderlich | Standardwert | Zulässige Werte | Wird auf allen Plattformen unterstützt | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | Der Dateipfad. | Zeichenfolge | Ja | – | – | Ja | 
| content | Der Textinhalt der Datei. | Zeichenfolge | Nein | – | – | Ja | 
| encoding | Der Kodierungsstandard. | Zeichenfolge | Nein | utf8 | utf8,utf-8,utf16,utf-16,utf16-LE, utf-16-LEutf16-BE,utf-16-BE,utf32,utf-32,utf32-LE,utf-32-LE,utf32-BE, und utf-32-BE. Der Wert der Kodierungsoption unterscheidet nicht zwischen Groß- und Kleinschreibung. | Ja | 
| owner | Der Benutzername oder die ID. | Zeichenfolge | Nein | – | – | Wird unter Windows nicht unterstützt. | 
| group | Der Gruppenname oder die ID. | Zeichenfolge | Nein | Der aktuelle Benutzer. | – | Wird unter Windows nicht unterstützt. | 
| permissions | Die Dateiberechtigungen. | Zeichenfolge | Nein | 0666 | – | Wird unter Windows nicht unterstützt. | 
| overwrite | Wenn der Name der angegebenen Datei bereits existiert, wird durch das Einstellen dieses Werts auf false verhindert, dass die Datei standardmäßig gekürzt oder überschrieben wird. | Boolesch | Nein | true | – | Ja | 

**Eingabebeispiel: Eine Datei ohne Überschreiben erstellen (Linux)**

```
  - name: CreatingFileWithoutOverwriteLinux
    action: CreateFile
    inputs:
      - path: /home/UserName/Sample.txt
        content: The text content of the sample file.
        overwrite: false
```

**Eingabebeispiel: Erstellen Sie eine Datei ohne Überschreiben (Windows)**

```
  - name: CreatingFileWithoutOverwriteWindows
    action: CreateFile
    inputs:
      - path: C:\Temp\Sample.txt
        content: The text content of the sample file.
        overwrite: false
```

**Eingabebeispiel: Erstellen Sie eine Datei mit Dateieigenschaften**

```
  - name: CreatingFileWithFileProperties
    action: CreateFile
    inputs:
      - path: SampleFolder/Sample.txt
        content: The text content of the sample file.
        encoding: UTF-16
        owner: Ubuntu
        group: UbuntuGroup
        permissions: 0777
     - path: SampleFolder/SampleFile.txt
        permissions: 755
      - path: SampleFolder/TextFile.txt
        encoding: UTF-16
        owner: root
        group: rootUserGroup
```

**Eingabebeispiel: Erstellen Sie eine Datei ohne Dateieigenschaften**

```
  - name: CreatingFileWithoutFileProperties
    action: CreateFile
    inputs:
      - path: ./Sample.txt
      - path: Sample1.txt
```

**Eingabebeispiel: Erstellen Sie eine leere Datei, um einen Abschnitt im Linux-Bereinigungsskript zu überspringen**

```
  - name: CreateSkipCleanupfile
    action: CreateFile
    inputs:
      - path: <skip section file name>
```

Weitere Informationen finden Sie unter [Überschreiben Sie das Linux-Bereinigungsskript](security-best-practices.md#override-linux-cleanup-script).

**Ausgabe**  
Keine.

### CreateFolder (Linux, Windows, macOS)
<a name="action-modules-createfolder"></a>

Das **CreateFolder**Aktionsmodul erstellt einen Ordner an einem bestimmten Ort. Standardmäßig erstellt das Modul bei Bedarf auch rekursiv die übergeordneten Ordner.

Wenn der Ordner bereits im angegebenen Ordner vorhanden ist, kürzt oder überschreibt das Aktionsmodul standardmäßig den vorhandenen Ordner. Sie können dieses Standardverhalten außer Kraft setzen, indem Sie die Option Überschreiben auf setzen. `false` Wenn die Option zum Überschreiben auf `false` gesetzt ist und sich am angegebenen Speicherort bereits ein Ordner mit dem angegebenen Namen befindet, gibt das Aktionsmodul einen Fehler zurück.

`owner``group`, und `permissions` sind optionale Eingaben. Die Eingabe für `permissions` muss ein Zeichenkettenwert sein. Diese Optionen werden auf Windows-Plattformen nicht unterstützt. Dieses Aktionsmodul validiert und gibt einen Fehler zurück, wenn die `permissions` Optionen `owner``group`, und auf Windows-Plattformen verwendet werden.

Dieses Aktionsmodul kann einen Ordner mit Berechtigungen erstellen, die durch den `umask` Standardwert des Betriebssystems definiert sind. Sie müssen den `umask` Wert festlegen, wenn Sie den Standardwert überschreiben möchten.

Das Aktionsmodul gibt einen Fehler zurück, wenn Folgendes eintritt:
+ Sie sind nicht berechtigt, einen Ordner am angegebenen Speicherort zu erstellen.
+ Das Aktionsmodul stößt bei der Ausführung des Vorgangs auf einen Fehler.


**Input**  

| Tastenname | Description | Typ | Erforderlich | Standardwert | Zulässige Werte | Wird auf allen Plattformen unterstützt | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | Der Ordnerpfad. | Zeichenfolge | Ja | – | – | Ja | 
| owner | Der Benutzername oder die ID. | Zeichenfolge | Nein | Der aktuelle Benutzer. | – | Wird unter Windows nicht unterstützt. | 
| group | Der Gruppenname oder die ID. | Zeichenfolge | Nein | Die Gruppe des aktuellen Benutzers. | – | Wird unter Windows nicht unterstützt. | 
| permissions | Die Ordnerberechtigungen. | Zeichenfolge | Nein | 0777 | – | Wird unter Windows nicht unterstützt. | 
| overwrite | Wenn der Name der angegebenen Datei bereits existiert, wird durch das Einstellen dieses Werts auf false verhindert, dass die Datei standardmäßig gekürzt oder überschrieben wird. | Boolesch | Nein | true | – | Ja | 

**Eingabebeispiel: Erstellen Sie einen Ordner (Linux)**

```
  - name: CreatingFolderLinux
    action: CreateFolder
    inputs:
      - path: /Sample/MyFolder/
```

**Eingabebeispiel: Erstellen Sie einen Ordner (Windows)**

```
  - name: CreatingFolderWindows
    action: CreateFolder
    inputs:
      - path: C:\MyFolder
```

**Eingabebeispiel: Erstellen Sie einen Ordner, in dem die Ordnereigenschaften angegeben sind**

```
  - name: CreatingFolderWithFolderProperties
    action: CreateFolder
    inputs:
      - path: /Sample/MyFolder/Sample/
        owner: SampleOwnerName
        group: SampleGroupName
        permissions: 0777
      - path: /Sample/MyFolder/SampleFoler/
        permissions: 777
```

**Eingabebeispiel: Erstellen Sie einen Ordner, der den vorhandenen Ordner überschreibt, falls es einen gibt.**

```
  - name: CreatingFolderWithOverwrite
    action: CreateFolder
    inputs:
      - path: /Sample/MyFolder/Sample/
        overwrite: true
```

**Ausgabe**  
Keine.

### CreateSymlink (Linux, Windows, macOS)
<a name="action-modules-createsymlink"></a>

Das **CreateSymlink**Aktionsmodul erstellt symbolische Links oder Dateien, die einen Verweis auf eine andere Datei enthalten. Dieses Modul wird auf Windows-Plattformen nicht unterstützt. 

Die Eingabe für die `target` Optionen `path` und kann entweder ein absoluter oder ein relativer Pfad sein. Handelt es sich bei der Eingabe für die `path` Option um einen relativen Pfad, wird dieser bei der Erstellung des Links durch den absoluten Pfad ersetzt.

Wenn ein Link mit dem angegebenen Namen bereits im angegebenen Ordner vorhanden ist, gibt das Aktionsmodul standardmäßig einen Fehler zurück. Sie können dieses Standardverhalten außer Kraft setzen, indem Sie die `force` Option auf setzen`true`. Wenn die `force` Option auf gesetzt ist`true`, überschreibt das Modul den vorhandenen Link.

Wenn kein übergeordneter Ordner vorhanden ist, erstellt das Aktionsmodul den Ordner standardmäßig rekursiv.

Das Aktionsmodul gibt einen Fehler zurück, wenn Folgendes eintritt:
+ Die Zieldatei ist zur Laufzeit nicht vorhanden.
+ Eine nichtsymbolische Linkdatei mit dem angegebenen Namen ist bereits vorhanden.
+ Das Aktionsmodul stößt bei der Ausführung des Vorgangs auf einen Fehler.


**Input**  

| Tastenname | Description | Typ | Erforderlich | Standardwert | Zulässige Werte | Wird auf allen Plattformen unterstützt | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | Der Dateipfad. | Zeichenfolge | Ja | – | – | Wird unter Windows nicht unterstützt. | 
| target | Der Zieldateipfad, auf den der symbolische Link verweist. | Zeichenfolge | Ja | – | – | Wird unter Windows nicht unterstützt. | 
| force | Erzwingt die Erstellung eines Links, wenn bereits ein Link mit demselben Namen vorhanden ist. | Boolesch | Nein | false | – | Wird unter Windows nicht unterstützt. | 

**Eingabebeispiel: Erstellen Sie einen symbolischen Link, der die Erstellung eines Links erzwingt**

```
  - name: CreatingSymbolicLinkWithForce
    action: CreateSymlink
    inputs:
      - path: /Folder2/Symboliclink.txt
        target: /Folder/Sample.txt
        force: true
```

**Eingabebeispiel: Erstellen Sie einen symbolischen Link, der die Erstellung eines Links nicht erzwingt**

```
  - name: CreatingSymbolicLinkWithOutForce
    action: CreateSymlink
    inputs:
      - path: Symboliclink.txt
        target: /Folder/Sample.txt
```

**Ausgabe**  
Keine.

### DeleteFile (Linux, Windows, macOS)
<a name="action-modules-deletefile"></a>

Das **DeleteFile**Aktionsmodul löscht eine oder mehrere Dateien an einem bestimmten Ort.

Die Eingabe von `path` sollte ein gültiger Dateipfad oder ein Dateipfad mit einem Platzhalterzeichen (`*`) im Dateinamen sein. Wenn Platzhalterzeichen im Dateinamen angegeben werden, werden alle Dateien innerhalb desselben Ordners, die dem Platzhalter entsprechen, gelöscht. 

Das Aktionsmodul gibt einen Fehler zurück, wenn Folgendes eintritt:
+ Sie sind nicht berechtigt, Löschvorgänge durchzuführen.
+ Das Aktionsmodul stößt bei der Ausführung des Vorgangs auf einen Fehler.


**Input**  

| Tastenname | Description | Typ | Erforderlich | Standardwert | Zulässige Werte | Wird auf allen Plattformen unterstützt | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | Der Dateipfad. | Zeichenfolge | Ja | – | – | Ja | 

**Eingabebeispiel: Eine einzelne Datei löschen (Linux)**

```
  - name: DeletingSingleFileLinux
    action: DeleteFile
    inputs:
      - path: /SampleFolder/MyFolder/Sample.txt
```

**Eingabebeispiel: Eine einzelne Datei löschen (Windows)**

```
  - name: DeletingSingleFileWindows
    action: DeleteFile
    inputs:
      - path: C:\SampleFolder\MyFolder\Sample.txt
```

**Eingabebeispiel: Lösche eine Datei, die mit „log“ endet (Linux)**

```
  - name: DeletingFileEndingWithLogLinux
    action: DeleteFile
    inputs:
      - path: /SampleFolder/MyFolder/*log
```

**Eingabebeispiel: Lösche eine Datei, die mit „log“ endet (Windows)**

```
  - name: DeletingFileEndingWithLogWindows
    action: DeleteFile
    inputs:
      - path: C:\SampleFolder\MyFolder\*log
```

**Eingabebeispiel: lösche alle Dateien in einem angegebenen Ordner (Linux)**

```
  - name: DeletingAllFilesInAFolderLinux
    action: DeleteFile
    inputs:
      - path: /SampleFolder/MyFolder/*
```

**Eingabebeispiel: lösche alle Dateien in einem angegebenen Ordner (Windows)**

```
  - name: DeletingAllFilesInAFolderWindows
    action: DeleteFile
    inputs:
      - path: C:\SampleFolder\MyFolder\*
```

**Ausgabe**  
Keine.

### DeleteFolder (Linux, Windows, macOS)
<a name="action-modules-deletefolder"></a>

Das **DeleteFolder**Aktionsmodul löscht Ordner.

Wenn der Ordner nicht leer ist, müssen Sie die `force` Option auf setzen, `true` um den Ordner und seinen Inhalt zu entfernen. Wenn Sie die `force` Option nicht auf setzen und der Ordner`true`, den Sie löschen möchten, nicht leer ist, gibt das Aktionsmodul einen Fehler zurück. Der Standardwert der `force` Option ist`false`.

Das Aktionsmodul gibt einen Fehler zurück, wenn Folgendes eintritt:
+ Sie sind nicht berechtigt, Löschvorgänge durchzuführen.
+ Das Aktionsmodul stößt bei der Ausführung des Vorgangs auf einen Fehler.


**Input**  

| Tastenname | Description | Typ | Erforderlich | Standardwert | Zulässige Werte | Wird auf allen Plattformen unterstützt | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | Der Ordnerpfad. | Zeichenfolge | Ja | – | – | Ja | 
| force | Löscht den Ordner, unabhängig davon, ob der Ordner leer ist oder nicht. | Boolesch | Nein | false | – | Ja | 

**Eingabebeispiel: Löschen Sie einen Ordner, der nicht leer ist, mit der `force` Option (Linux)** 

```
  - name: DeletingFolderWithForceOptionLinux
    action: DeleteFolder
    inputs:
      - path: /Sample/MyFolder/Sample/
        force: true
```

**Eingabebeispiel: Löschen Sie einen Ordner, der nicht leer ist, mit der `force` Option (Windows)** 

```
  - name: DeletingFolderWithForceOptionWindows
    action: DeleteFolder
    inputs:
      - path: C:\Sample\MyFolder\Sample\
        force: true
```

**Eingabebeispiel: einen Ordner löschen (Linux)** 

```
  - name: DeletingFolderWithOutForceLinux
    action: DeleteFolder
    inputs:
      - path: /Sample/MyFolder/Sample/
```

**Eingabebeispiel: einen Ordner löschen (Windows)** 

```
  - name: DeletingFolderWithOutForce
    action: DeleteFolder
    inputs:
      - path: C:\Sample\MyFolder\Sample\
```

**Ausgabe**  
Keine.

### ListFiles (Linux, Windows, macOS)
<a name="action-modules-listfiles"></a>

Das **ListFiles**Aktionsmodul listet die Dateien in einem angegebenen Ordner auf. Wenn die Option rekursiv auf gesetzt ist`true`, listet sie die Dateien in Unterordnern auf. Dieses Modul listet standardmäßig keine Dateien in Unterordnern auf.

Um alle Dateien aufzulisten, deren Namen einem bestimmten Muster entsprechen, verwenden Sie die `fileNamePattern` Option zur Angabe des Musters. Die `fileNamePattern` Option akzeptiert den Platzhalterwert (`*`). Wenn der angegeben `fileNamePattern` ist, werden alle Dateien zurückgegeben, die dem angegebenen Dateinamenformat entsprechen. 

Das Aktionsmodul gibt einen Fehler zurück, wenn Folgendes eintritt:
+ Der angegebene Ordner ist zur Laufzeit nicht vorhanden.
+ Sie sind nicht berechtigt, eine Datei oder einen Ordner im angegebenen übergeordneten Ordner zu erstellen.
+ Das Aktionsmodul stößt bei der Ausführung des Vorgangs auf einen Fehler.


**Input**  

| Tastenname | Description | Typ | Erforderlich | Standardwert | Zulässige Werte | Wird auf allen Plattformen unterstützt | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | Der Ordnerpfad. | Zeichenfolge | Ja | – | – | Ja | 
| fileNamePattern | Das Muster, das abgeglichen werden soll, um alle Dateien aufzulisten, deren Namen dem Muster entsprechen. | Zeichenfolge | Nein | – | – | Ja | 
| recursive | Listet die Dateien im Ordner rekursiv auf. | Boolesch | Nein | false | – | Ja | 

**Eingabebeispiel: listet Dateien im angegebenen Ordner auf (Linux)**

```
  - name: ListingFilesInSampleFolderLinux
    action: ListFiles
    inputs:
      - path: /Sample/MyFolder/Sample
```

**Eingabebeispiel: Dateien im angegebenen Ordner auflisten (Windows)**

```
  - name: ListingFilesInSampleFolderWindows
    action: ListFiles
    inputs:
      - path: C:\Sample\MyFolder\Sample
```

**Eingabebeispiel: listet Dateien auf, die mit „log“ enden (Linux)**

```
  - name: ListingFilesWithEndingWithLogLinux
    action: ListFiles
    inputs:
      - path: /Sample/MyFolder/
        fileNamePattern: *log
```

**Eingabebeispiel: listet Dateien auf, die mit „log“ enden (Windows)**

```
  - name: ListingFilesWithEndingWithLogWindows
    action: ListFiles
    inputs:
      - path: C:\Sample\MyFolder\
        fileNamePattern: *log
```

**Eingabebeispiel: Dateien rekursiv auflisten**

```
  - name: ListingFilesRecursively
    action: ListFiles
    inputs:
      - path: /Sample/MyFolder/
        recursive: true
```


**Ausgabe**  

| Tastenname | Description | Typ | 
| --- | --- | --- | 
| files | Die Liste der Dateien. | Zeichenfolge | 

**Output example**

```
{
	"files": "/sample1.txt,/sample2.txt,/sample3.txt"
}
```

### MoveFile (Linux, Windows, macOS)
<a name="action-modules-movefile"></a>

Das **MoveFile**Aktionsmodul verschiebt Dateien von der angegebenen Quelle zum angegebenen Ziel.

Wenn die Datei bereits im angegebenen Ordner vorhanden ist, überschreibt das Aktionsmodul standardmäßig die vorhandene Datei. Sie können dieses Standardverhalten außer Kraft setzen, indem Sie die Option Überschreiben auf setzen. `false` Wenn die Option zum Überschreiben auf `false` gesetzt ist und sich am angegebenen Speicherort bereits eine Datei mit dem angegebenen Namen befindet, gibt das Aktionsmodul einen Fehler zurück. Diese Option funktioniert genauso wie der `mv` Befehl unter Linux, der standardmäßig überschreibt.

Der Name der Quelldatei kann einen Platzhalter () `*` enthalten. Platzhalterzeichen werden nur nach dem letzten Dateipfad-Trennzeichen (`/`oder`\`) akzeptiert. Wenn der Quelldateiname Platzhalterzeichen enthält, werden alle Dateien, die dem Platzhalter entsprechen, in den Zielordner kopiert. Wenn Sie mehr als eine Datei mithilfe eines Platzhalterzeichens verschieben möchten, muss die Eingabe für die `destination` Option mit einem Dateipfadtrennzeichen (`/`oder`\`) enden, das angibt, dass es sich bei der Zieleingabe um einen Ordner handelt.

Wenn sich der Zieldateiname vom Quelldateinamen unterscheidet, können Sie den Zieldateinamen mithilfe der `destination` Option angeben. Wenn Sie keinen Zieldateinamen angeben, wird der Name der Quelldatei verwendet, um die Zieldatei zu erstellen. Jeder Text, der auf das letzte Dateipfadtrennzeichen (`/`oder`\`) folgt, wird als Dateiname behandelt. Wenn Sie denselben Dateinamen wie die Quelldatei verwenden möchten, muss die Eingabe der `destination` Option mit einem Dateipfadtrennzeichen (`/`oder`\`) enden. 

Das Aktionsmodul gibt einen Fehler zurück, wenn Folgendes eintritt:
+ Sie sind nicht berechtigt, eine Datei im angegebenen Ordner zu erstellen.
+ Die Quelldateien sind zur Laufzeit nicht vorhanden.
+ Es gibt bereits einen Ordner mit dem angegebenen Dateinamen und die `overwrite` Option ist auf eingestellt`false`.
+ Das Aktionsmodul stößt bei der Ausführung des Vorgangs auf einen Fehler.


**Input**  

| Tastenname | Description | Typ | Erforderlich | Standardwert | Zulässige Werte | Wird auf allen Plattformen unterstützt | 
| --- | --- | --- | --- | --- | --- | --- | 
| source | Der Pfad der Quelldatei. | Zeichenfolge | Ja | – | – | Ja | 
| destination | Der Zieldateipfad. | Zeichenfolge | Ja | – | – | Ja | 
| overwrite | Wenn der Wert auf false gesetzt ist, werden die Zieldateien nicht ersetzt, wenn sich am angegebenen Speicherort bereits eine Datei mit dem angegebenen Namen befindet. | Boolesch | Nein | true | – | Ja | 

**Eingabebeispiel: Eine Datei verschieben (Linux)**

```
  - name: MovingAFileLinux
    action: MoveFile
    inputs:
      - source: /Sample/MyFolder/Sample.txt
        destination: /MyFolder/destinationFile.txt
```

**Eingabebeispiel: Eine Datei verschieben (Windows)**

```
  - name: MovingAFileWindows
    action: MoveFile
    inputs:
      - source: C:\Sample\MyFolder\Sample.txt
        destination: C:\MyFolder\destinationFile.txt
```

**Eingabebeispiel: Verschieben Sie eine Datei unter Verwendung des Quelldateinamens (Linux)**

```
  - name: MovingFileWithSourceFileNameLinux
    action: MoveFile
    inputs:
      - source: /Sample/MyFolder/Sample.txt
        destination: /MyFolder/
```

**Eingabebeispiel: Verschieben Sie eine Datei unter Verwendung des Quelldateinamens (Windows)**

```
  - name: MovingFileWithSourceFileNameWindows
    action: MoveFile
    inputs:
      - source: C:\Sample\MyFolder\Sample.txt
        destination: C:\MyFolder
```

**Eingabebeispiel: Verschieben Sie eine Datei mit einem Platzhalterzeichen (Linux)**

```
  - name: MovingFilesWithWildCardLinux
    action: MoveFile
    inputs:
      - source: /Sample/MyFolder/Sample*
        destination: /MyFolder/
```

**Eingabebeispiel: Verschieben Sie eine Datei mit einem Platzhalterzeichen (Windows)**

```
  - name: MovingFilesWithWildCardWindows
    action: MoveFile
    inputs:
      - source: C:\Sample\MyFolder\Sample*
        destination: C:\MyFolder
```

**Eingabebeispiel: Eine Datei verschieben, ohne sie zu überschreiben (Linux)**

```
  - name: MovingFilesWithoutOverwriteLinux
    action: MoveFile
    inputs:
      - source: /Sample/MyFolder/Sample.txt
        destination: /MyFolder/destinationFile.txt
        overwrite: false
```

**Eingabebeispiel: Eine Datei verschieben, ohne sie zu überschreiben (Windows)**

```
  - name: MovingFilesWithoutOverwrite
    action: MoveFile
    inputs:
      - source: C:\Sample\MyFolder\Sample.txt
        destination: C:\MyFolder\destinationFile.txt
        overwrite: false
```

**Ausgabe**  
Keine.

### MoveFolder (Linux, Windows, macOS)
<a name="action-modules-movefolder"></a>

Das **MoveFolder**Aktionsmodul verschiebt Ordner von der angegebenen Quelle zum angegebenen Ziel. Die Eingabe für die `source` Option ist der Ordner, der verschoben werden soll, und die Eingabe für die `destination` Option ist der Ordner, in den der Inhalt der Quellordner verschoben wird.

Wenn der übergeordnete Zielordner oder die Eingabe für die `destination` Option zur Laufzeit nicht vorhanden sind, besteht das Standardverhalten des Moduls darin, den Ordner rekursiv am angegebenen Ziel zu erstellen.

Wenn im Zielordner bereits ein Ordner vorhanden ist, der mit dem Quellordner identisch ist, überschreibt das Aktionsmodul standardmäßig den vorhandenen Ordner. Sie können dieses Standardverhalten außer Kraft setzen, indem Sie die Option Überschreiben auf setzen. `false` Wenn die Option zum Überschreiben auf `false` gesetzt ist und sich am angegebenen Speicherort bereits ein Ordner mit dem angegebenen Namen befindet, gibt das Aktionsmodul einen Fehler zurück.

Der Name des Quellordners kann einen Platzhalter () `*` enthalten. Platzhalterzeichen werden nur nach dem letzten Dateipfad-Trennzeichen (`/`oder`\`) akzeptiert. Wenn Platzhalterzeichen im Quellordnernamen enthalten sind, werden alle Ordner, die dem Platzhalter entsprechen, in den Zielordner kopiert. Wenn Sie mehr als einen Ordner mithilfe eines Platzhalterzeichens verschieben möchten, muss die Eingabe für die `destination` Option mit einem Dateipfadtrennzeichen (`/`oder`\`) enden, was darauf hinweist, dass es sich bei der Zieleingabe um einen Ordner handelt.

Wenn sich der Name des Zielordners vom Namen des Quellordners unterscheidet, können Sie den Namen des Zielordners mithilfe der `destination` Option angeben. Wenn Sie keinen Zielordnernamen angeben, wird der Name des Quellordners verwendet, um den Zielordner zu erstellen. Jeder Text, der auf das letzte Dateipfadtrennzeichen (`/`oder`\`) folgt, wird als Ordnername behandelt. Wenn Sie denselben Ordnernamen wie den Quellordner verwenden möchten, muss die Eingabe der `destination` Option mit einem Dateipfadtrennzeichen (`/`oder`\`) enden. 

Das Aktionsmodul gibt einen Fehler zurück, wenn Folgendes eintritt:
+ Sie sind nicht berechtigt, einen Ordner im Zielordner zu erstellen.
+ Die Quellordner sind zur Laufzeit nicht vorhanden.
+ Es gibt bereits einen Ordner mit dem angegebenen Namen und die `overwrite` Option ist auf gesetzt`false`.
+ Das Aktionsmodul stößt bei der Ausführung des Vorgangs auf einen Fehler.


**Input**  

| Tastenname | Description | Typ | Erforderlich | Standardwert | Zulässige Werte | Wird auf allen Plattformen unterstützt | 
| --- | --- | --- | --- | --- | --- | --- | 
| source | Der Pfad des Quellordners. | Zeichenfolge | Ja | – | – | Ja | 
| destination | Der Pfad des Zielordners. | Zeichenfolge | Ja | – | – | Ja | 
| overwrite | Wenn der Wert auf False gesetzt ist, werden die Zielordner nicht ersetzt, wenn sich am angegebenen Speicherort bereits ein Ordner mit dem angegebenen Namen befindet. | Boolesch | Nein | true | – | Ja | 

**Eingabebeispiel: Einen Ordner verschieben (Linux)**

```
  - name: MovingAFolderLinux
    action: MoveFolder
    inputs:
      - source: /Sample/MyFolder/SourceFolder
        destination: /MyFolder/destinationFolder
```

**Eingabebeispiel: Einen Ordner verschieben (Windows)**

```
  - name: MovingAFolderWindows
    action: MoveFolder
    inputs:
      - source: C:\Sample\MyFolder\SourceFolder
        destination: C:\MyFolder\destinationFolder
```

**Eingabebeispiel: Verschieben Sie einen Ordner unter Verwendung des Quellordnernamens (Linux)**

```
  - name: MovingFolderWithSourceFolderNameLinux
    action: MoveFolder
    inputs:
      - source: /Sample/MyFolder/SampleFolder
        destination: /MyFolder/
```

**Eingabebeispiel: Verschieben Sie einen Ordner mithilfe des Quellordnernamens (Windows)**

```
  - name: MovingFolderWithSourceFolderNameWindows
    action: MoveFolder
    inputs:
      - source: C:\Sample\MyFolder\SampleFolder
        destination: C:\MyFolder\
```

**Eingabebeispiel: Verschieben Sie einen Ordner mithilfe eines Platzhalterzeichens (Linux)**

```
  - name: MovingFoldersWithWildCardLinux
    action: MoveFolder
    inputs:
      - source: /Sample/MyFolder/Sample*
        destination: /MyFolder/
```

**Eingabebeispiel: Verschieben Sie einen Ordner mithilfe eines Platzhalterzeichens (Windows)**

```
  - name: MovingFoldersWithWildCardWindows
    action: MoveFolder
    inputs:
      - source: C:\Sample\MyFolder\Sample*
        destination: C:\MyFolder\
```

**Eingabebeispiel: Einen Ordner verschieben, ohne ihn zu überschreiben (Linux)**

```
  - name: MovingFoldersWithoutOverwriteLinux
    action: MoveFolder
    inputs:
      - source: /Sample/MyFolder/SampleFolder
    destination: /MyFolder/destinationFolder
    overwrite: false
```

**Eingabebeispiel: Einen Ordner verschieben, ohne ihn zu überschreiben (Windows)**

```
  - name: MovingFoldersWithoutOverwriteWindows
    action: MoveFolder
    inputs:
      - source: C:\Sample\MyFolder\SampleFolder
        destination: C:\MyFolder\destinationFolder
        overwrite: false
```

**Ausgabe**  
Keine.

### ReadFile (Linux, Windows, macOS)
<a name="action-modules-readfile"></a>

Das **ReadFile**Aktionsmodul liest den Inhalt einer Textdatei vom Typ Zeichenfolge. Dieses Modul kann verwendet werden, um den Inhalt einer Datei zur Verwendung in nachfolgenden Schritten durch Verkettung oder zum Lesen von Daten in die `console.log` Datei zu lesen. Wenn der angegebene Pfad ein symbolischer Link ist, gibt dieses Modul den Inhalt der Zieldatei zurück. Dieses Modul unterstützt nur Textdateien.

Wenn sich der Dateicodierungswert vom Standardwert encoding (`utf-8`) unterscheidet, können Sie den Dateicodierungswert mithilfe der `encoding` Option angeben. Standardmäßig wird davon ausgegangen, `utf-16` dass `utf-32` sie die Little-Endian-Kodierung verwenden. 

Standardmäßig kann dieses Modul den Dateiinhalt nicht in die Datei drucken. `console.log` Sie können diese Einstellung überschreiben, indem Sie die `printFileContent` Eigenschaft auf setzen`true`.

Dieses Modul kann nur den Inhalt einer Datei zurückgeben. Es kann keine Dateien wie Excel- oder JSON-Dateien analysieren.

Das Aktionsmodul gibt einen Fehler zurück, wenn Folgendes eintritt:
+ Die Datei ist zur Laufzeit nicht vorhanden.
+ Das Aktionsmodul stößt bei der Ausführung des Vorgangs auf einen Fehler.


**Input**  

| Tastenname | Description | Typ | Erforderlich | Standardwert | Zulässige Werte | Wird auf allen Plattformen unterstützt | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | Der Dateipfad. | Zeichenfolge | Ja | – | – | Ja | 
| encoding | Der Kodierungsstandard. | Zeichenfolge | Nein | utf8 | utf8,utf-8,utf16,utf-16,utf16-LE, utf-16-LEutf16-BE,utf-16-BE,utf32,utf-32,utf32-LE,utf-32-LE,utf32-BE, und utf-32-BE. Der Wert der Kodierungsoption unterscheidet nicht zwischen Groß- und Kleinschreibung. | Ja | 
| printFileContent | Druckt den Dateiinhalt in die console.log Datei. | Boolesch | Nein | false | – | Ja. | 

**Eingabebeispiel: Eine Datei lesen (Linux)**

```
  - name: ReadingFileLinux
    action: ReadFile
    inputs:
      - path: /home/UserName/SampleFile.txt
```

**Eingabebeispiel: eine Datei lesen (Windows)**

```
  - name: ReadingFileWindows
    action: ReadFile
    inputs:
      - path: C:\Windows\WindowsUpdate.log
```

**Eingabebeispiel: Eine Datei lesen und den Kodierungsstandard angeben**

```
  - name: ReadingFileWithFileEncoding
    action: ReadFile
    inputs:
      - path: /FolderName/SampleFile.txt
        encoding: UTF-32
```

**Eingabebeispiel: Eine Datei lesen und in die `console.log` Datei drucken**

```
  - name: ReadingFileToConsole
    action: ReadFile
    inputs:
      - path: /home/UserName/SampleFile.txt
        printFileContent: true
```


**Ausgabe**  

| Feld | Description | Typ | 
| --- | --- | --- | 
| content | Der Inhalt der Datei. | Zeichenfolge | 

**Output example**

```
{
	"content" : "The file content"
}
```

### SetFileEncoding (Linux, Windows, macOS)
<a name="action-modules-setfileencoding"></a>

Das **SetFileEncoding**Aktionsmodul ändert die Kodierungseigenschaft einer vorhandenen Datei. Dieses Modul kann die Dateikodierung von `utf-8` zu einem bestimmten Kodierungsstandard konvertieren. Standardmäßig wird davon ausgegangen, `utf-16` dass `utf-32` es sich um Little-Endian-Kodierung handelt.

Das Aktionsmodul gibt einen Fehler zurück, wenn Folgendes eintritt:
+ Sie sind nicht berechtigt, die angegebene Änderung durchzuführen.
+ Die Datei ist zur Laufzeit nicht vorhanden.
+ Das Aktionsmodul stößt bei der Ausführung des Vorgangs auf einen Fehler.


**Input**  

| Tastenname | Description | Typ | Erforderlich | Standardwert | Zulässige Werte | Wird auf allen Plattformen unterstützt | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | Der Dateipfad. | Zeichenfolge | Ja | – | – | Ja | 
| encoding | Der Kodierungsstandard. | Zeichenfolge | Nein | utf8 | utf8,utf-8,utf16,utf-16,utf16-LE, utf-16-LEutf16-BE,utf-16-BE,utf32,utf-32,utf32-LE,utf-32-LE,utf32-BE, und utf-32-BE. Der Wert der Kodierungsoption unterscheidet nicht zwischen Groß- und Kleinschreibung. | Ja | 

**Eingabebeispiel: Legen Sie die Eigenschaft zur Dateikodierung fest**

```
  - name: SettingFileEncodingProperty
    action: SetFileEncoding
    inputs:
      - path: /home/UserName/SampleFile.txt
        encoding: UTF-16
```

**Ausgabe**  
Keine.

### SetFileOwner (Linux, Windows, macOS)
<a name="action-modules-setfileowner"></a>

Das **SetFileOwner**Aktionsmodul ändert die Eigenschaften `owner` und `group` Eigentümer einer vorhandenen Datei. Wenn es sich bei der angegebenen Datei um einen symbolischen Link handelt, ändert das Modul die `owner` Eigenschaft der Quelldatei. Dieses Modul wird auf Windows-Plattformen nicht unterstützt. 

Dieses Modul akzeptiert Benutzer- und Gruppennamen als Eingaben. Wenn der Gruppenname nicht angegeben wird, weist das Modul den Gruppeneigentümer der Datei der Gruppe zu, zu der der Benutzer gehört.

Das Aktionsmodul gibt einen Fehler zurück, wenn Folgendes eintritt:
+ Sie sind nicht berechtigt, die angegebene Änderung durchzuführen.
+ Der angegebene Benutzer- oder Gruppenname ist zur Laufzeit nicht vorhanden.
+ Die Datei ist zur Laufzeit nicht vorhanden.
+ Das Aktionsmodul stößt bei der Ausführung des Vorgangs auf einen Fehler.


**Input**  

| Tastenname | Description | Typ | Erforderlich | Standardwert | Zulässige Werte | Wird auf allen Plattformen unterstützt | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | Der Dateipfad. | Zeichenfolge | Ja | – | – | Wird unter Windows nicht unterstützt. | 
| owner | Der Benutzername | Zeichenfolge | Ja | – | – | Wird unter Windows nicht unterstützt. | 
| group | Der Name der Benutzergruppe. | Zeichenfolge | Nein | Der Name der Gruppe, zu der der Benutzer gehört. | – | Wird unter Windows nicht unterstützt. | 

**Eingabebeispiel: Legen Sie die Eigenschaft des Dateibesitzers fest, ohne den Namen der Benutzergruppe anzugeben**

```
  - name: SettingFileOwnerPropertyNoGroup
    action: SetFileOwner
    inputs:
      - path: /home/UserName/SampleText.txt
        owner: LinuxUser
```

**Eingabebeispiel: Legen Sie die Eigenschaft des Dateibesitzers fest, indem Sie den Eigentümer und die Benutzergruppe angeben**

```
  - name: SettingFileOwnerProperty
    action: SetFileOwner
    inputs:
      - path: /home/UserName/SampleText.txt
        owner: LinuxUser
        group: LinuxUserGroup
```

**Ausgabe**  
Keine.

### SetFolderOwner (Linux, Windows, macOS)
<a name="action-modules-setfolderowner"></a>

Das **SetFolderOwner**Aktionsmodul ändert rekursiv die Eigenschaften `owner` und `group` Eigentümer eines vorhandenen Ordners. Standardmäßig kann das Modul die Eigentümerschaft für den gesamten Inhalt eines Ordners ändern. Sie können die `recursive` Option auf setzen, `false` um dieses Verhalten zu überschreiben. Dieses Modul wird auf Windows-Plattformen nicht unterstützt. 

Dieses Modul akzeptiert Benutzer- und Gruppennamen als Eingaben. Wenn der Gruppenname nicht angegeben wird, weist das Modul den Gruppeneigentümer der Datei der Gruppe zu, zu der der Benutzer gehört.

Das Aktionsmodul gibt einen Fehler zurück, wenn Folgendes eintritt:
+ Sie sind nicht berechtigt, die angegebene Änderung durchzuführen.
+ Der angegebene Benutzer- oder Gruppenname ist zur Laufzeit nicht vorhanden.
+ Der Ordner ist zur Laufzeit nicht vorhanden.
+ Das Aktionsmodul stößt bei der Ausführung des Vorgangs auf einen Fehler.


**Input**  

| Tastenname | Description | Typ | Erforderlich | Standardwert | Zulässige Werte | Wird auf allen Plattformen unterstützt | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | Der Ordnerpfad. | Zeichenfolge | Ja | – | – | Wird unter Windows nicht unterstützt. | 
| owner | Der Benutzername | Zeichenfolge | Ja | – | – | Wird unter Windows nicht unterstützt. | 
| group | Der Name der Benutzergruppe. | Zeichenfolge | Nein | Der Name der Gruppe, zu der der Benutzer gehört. | – | Wird unter Windows nicht unterstützt. | 
| recursive | Setzt das Standardverhalten beim Ändern der Eigentümerschaft für den gesamten Inhalt eines Ordners außer Kraft, wenn diese Einstellung auf false gesetzt ist. | Boolesch | Nein | true | – | Wird unter Windows nicht unterstützt. | 

**Eingabebeispiel: Legen Sie die Eigenschaft des Ordnerbesitzers fest, ohne den Namen der Benutzergruppe anzugeben**

```
  - name: SettingFolderPropertyWithOutGroup
    action: SetFolderOwner
    inputs:
      - path: /SampleFolder/
        owner: LinuxUser
```

**Eingabebeispiel: Legen Sie die Eigenschaft des Ordnerbesitzers fest, ohne die Eigentümerschaft aller Inhalte in einem Ordner zu überschreiben**

```
  - name: SettingFolderPropertyWithOutRecursively
    action: SetFolderOwner
    inputs:
      - path: /SampleFolder/
        owner: LinuxUser
        recursive: false
```

**Eingabebeispiel: Legen Sie die Eigenschaft „Dateibesitz“ fest, indem Sie den Namen der Benutzergruppe angeben**

```
  - name: SettingFolderPropertyWithGroup
    action: SetFolderOwner
    inputs:
      - path: /SampleFolder/
        owner: LinuxUser
        group: LinuxUserGroup
```

**Ausgabe**  
Keine.

### SetFilePermissions (Linux, Windows, macOS)
<a name="action-modules-setfilepermissions"></a>

Das **SetFilePermissions**Aktionsmodul ändert die `permissions` einer vorhandenen Datei. Dieses Modul wird auf Windows-Plattformen nicht unterstützt. 

Die Eingabe für `permissions` muss ein Zeichenkettenwert sein.

Dieses Aktionsmodul kann eine Datei mit Berechtigungen erstellen, die durch den Standard-Umask-Wert des Betriebssystems definiert sind. Sie müssen den `umask` Wert festlegen, wenn Sie den Standardwert überschreiben möchten.

Das Aktionsmodul gibt einen Fehler zurück, wenn Folgendes eintritt:
+ Sie sind nicht berechtigt, die angegebene Änderung durchzuführen.
+ Die Datei ist zur Laufzeit nicht vorhanden.
+ Das Aktionsmodul stößt bei der Ausführung des Vorgangs auf einen Fehler.


**Input**  

| Tastenname | Description | Typ | Erforderlich | Standardwert | Zulässige Werte | Wird auf allen Plattformen unterstützt | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | Der Dateipfad. | Zeichenfolge | Ja | – | – | Wird unter Windows nicht unterstützt. | 
| permissions | Die Dateiberechtigungen. | Zeichenfolge | Ja | – | – | Wird unter Windows nicht unterstützt. | 

**Eingabebeispiel: Dateiberechtigungen ändern**

```
  - name: ModifyingFilePermissions
    action: SetFilePermissions
    inputs:
      - path: /home/UserName/SampleFile.txt
        permissions: 766
```

**Ausgabe**  
Keine.

### SetFolderPermissions (Linux, Windows, macOS)
<a name="action-modules-setfolderpermissions"></a>

Das **SetFolderPermissions**Aktionsmodul ändert rekursiv den `permissions` eines vorhandenen Ordners und all seiner Unterdateien und Unterordner. Standardmäßig kann dieses Modul die Berechtigungen für den gesamten Inhalt des angegebenen Ordners ändern. Sie können die `recursive` Option auf setzen, `false` um dieses Verhalten zu überschreiben. Dieses Modul wird auf Windows-Plattformen nicht unterstützt. 

Die Eingabe für `permissions` muss ein Zeichenkettenwert sein. 

Dieses Aktionsmodul kann Berechtigungen entsprechend dem Standard-Umask-Wert des Betriebssystems ändern. Sie müssen den `umask` Wert festlegen, wenn Sie den Standardwert überschreiben möchten.

Das Aktionsmodul gibt einen Fehler zurück, wenn Folgendes eintritt:
+ Sie sind nicht berechtigt, die angegebene Änderung durchzuführen.
+ Der Ordner ist zur Laufzeit nicht vorhanden.
+ Das Aktionsmodul stößt bei der Ausführung des Vorgangs auf einen Fehler.


**Input**  

| Tastenname | Description | Typ | Erforderlich | Standardwert | Zulässige Werte | Wird auf allen Plattformen unterstützt | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | Der Ordnerpfad. | Zeichenfolge | Ja | – | – | Wird unter Windows nicht unterstützt. | 
| permissions | Die Ordnerberechtigungen. | Zeichenfolge | Ja | – | – | Wird unter Windows nicht unterstützt. | 
| recursive | Setzt das Standardverhalten beim Ändern von Berechtigungen für den gesamten Inhalt eines Ordners außer Kraft, wenn diese Einstellung auf false gesetzt ist. | Boolesch | Nein | true | – | Wird unter Windows nicht unterstützt. | 

**Eingabebeispiel: Ordnerberechtigungen festlegen**

```
  - name: SettingFolderPermissions
    action: SetFolderPermissions
    inputs:
      - path: SampleFolder/
        permissions: 0777
```

**Eingabebeispiel: Ordnerberechtigungen festlegen, ohne die Berechtigungen für den gesamten Inhalt eines Ordners zu ändern**

```
  - name: SettingFolderPermissionsNoRecursive
    action: SetFolderPermissions
    inputs:
      - path: /home/UserName/SampleFolder/
        permissions: 777
        recursive: false
```

**Ausgabe**  
Keine.

## Aktionen zur Softwareinstallation
<a name="action-modules-software-install-actions"></a>

Im folgenden Abschnitt werden Aktionsmodule beschrieben, mit denen Software installiert oder deinstalliert wird.

**IAM-Anforderungen**  
Wenn es sich bei Ihrem Installations-Download-Pfad um einen S3-URI handelt, muss die IAM-Rolle, die Sie Ihrem Instanzprofil zuordnen, über die Berechtigung zum Ausführen des `S3Download` Aktionsmoduls verfügen. Um die erforderliche Berechtigung zu erteilen, fügen Sie die `S3:GetObject` IAM-Richtlinie der IAM-Rolle bei, die Ihrem Instance-Profil zugeordnet ist, und geben Sie den Pfad für Ihren Bucket an. Beispiel, `arn:aws:s3:::BucketName/*`).

**Komplexe MSI-Eingaben**  
Wenn Ihre Eingabezeichenfolgen doppelte Anführungszeichen (`"`) enthalten, müssen Sie eine der folgenden Methoden verwenden, um sicherzustellen, dass sie korrekt interpretiert werden:
+ Sie können einfache Anführungszeichen (') außerhalb Ihrer Zeichenfolge verwenden, um sie zu enthalten, und doppelte Anführungszeichen („) innerhalb Ihrer Zeichenfolge verwenden, wie im folgenden Beispiel gezeigt.

  ```
  properties:
    COMPANYNAME: '"Acme ""Widgets"" and ""Gizmos."""'
  ```

  Wenn Sie in diesem Fall einen Apostroph innerhalb Ihrer Zeichenfolge verwenden müssen, müssen Sie ihn maskieren. Das bedeutet, vor dem Apostroph ein weiteres einfaches Anführungszeichen (') zu verwenden.
+ Sie können doppelte Anführungszeichen („) an der Außenseite Ihrer Zeichenfolge verwenden, um sie zu enthalten. Und Sie können alle doppelten Anführungszeichen innerhalb Ihrer Zeichenfolge maskieren, indem Sie den umgekehrten Schrägstrich (`\`) verwenden, wie im folgenden Beispiel gezeigt.

  ```
  properties:
    COMPANYNAME: "\"Acme \"\"Widgets\"\" and \"\"Gizmos.\"\"\""
  ```

Beide Methoden übergeben den Wert `COMPANYNAME="Acme ""Widgets"" and ""Gizmos."""` an den **msiexec** Befehl.

**Topics**
+ [Installieren Sie MSI (Windows)](#action-modules-install-msi)
+ [Deinstallieren Sie MSI (Windows)](#action-modules-uninstall-msi)

### Installieren Sie MSI (Windows)
<a name="action-modules-install-msi"></a>

Das `InstallMSI` Aktionsmodul installiert eine Windows-Anwendung mithilfe einer MSI-Datei. Sie können die MSI-Datei mithilfe eines lokalen Pfads, einer S3-Objekt-URI oder einer Web-URL angeben. Die Neustartoption konfiguriert das Neustartverhalten des Systems.

AWSTOE generiert den **msiexec** Befehl auf der Grundlage der Eingabeparameter für das Aktionsmodul. Werte für die Eingabeparameter `path` (Speicherort der MSI-Datei) und `logFile` (Speicherort der Protokolldatei) müssen in Anführungszeichen („) eingeschlossen werden.

Die folgenden MSI-Exitcodes gelten als erfolgreich:
+ 0 (Erfolg)
+ 1614 (ERROR\$1PRODUCT\$1UNINSTALL)
+ 1641 (Neustart eingeleitet)
+ 3010 (Neustart erforderlich)


**Input**  

| Tastenname | Description | Typ | Erforderlich | Standardwert | Zulässige Werte | 
| --- | --- | --- | --- | --- | --- | 
| path |  Geben Sie den Speicherort der MSI-Datei mit einer der folgenden Methoden an: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/imagebuilder/latest/userguide/toe-action-modules.html) Verkettungsausdrücke sind zulässig.  | Zeichenfolge | Ja | – | – | 
| reboot |  Konfigurieren Sie das Verhalten beim Systemneustart, das auf eine erfolgreiche Ausführung des Aktionsmoduls folgt. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/imagebuilder/latest/userguide/toe-action-modules.html)  | Zeichenfolge | Nein | Allow | Allow, Force, Skip | 
| logOptions |  Geben Sie die Optionen an, die für die MSI-Installationsprotokollierung verwendet werden sollen. Die angegebenen Flags werden zusammen mit den `/L` Befehlszeilenparametern zur Aktivierung der Protokollierung an das MSI-Installationsprogramm übergeben. Wenn keine Flags angegeben sind, AWSTOE wird der Standardwert verwendet. Weitere Informationen zu Protokolloptionen für MSI finden Sie unter [Befehlszeilenoptionen](https://learn.microsoft.com/en-us/windows/win32/msi/command-line-options) in der Microsoft *Windows Installer-Produktdokumentation*.  | Zeichenfolge | Nein | \$1VX | i,w,e,a,r,u,c,m,o,p,v,x,\$1,\$1,\$1 | 
| logFile |  Ein absoluter oder relativer Pfad zum Speicherort der Protokolldatei. Wenn der Protokolldateipfad nicht existiert, wird er erstellt. Wenn der Protokolldateipfad nicht angegeben wird, AWSTOE wird das MSI-Installationsprotokoll nicht gespeichert.  | Zeichenfolge | Nein | – | – | 
| properties |  Schlüssel-Wert-Paare für MSI-Logging-Eigenschaften, zum Beispiel: `TARGETDIR: "C:\target\location"`   Hinweis: Die Änderung der folgenden Eigenschaften ist nicht zulässig: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/imagebuilder/latest/userguide/toe-action-modules.html)  | Map [Zeichenfolge] Zeichenfolge | Nein | – | – | 
| ignoreAuthenticodeSignatureErrors |  Markierung zum Ignorieren von Fehlern bei der Überprüfung der Authenticode-Signatur für das im Pfad angegebene Installationsprogramm. Der **Get-AuthenticodeSignature** Befehl wird verwendet, um Installationsprogramme zu validieren. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/imagebuilder/latest/userguide/toe-action-modules.html)  | Boolesch | Nein | false | true, false | 
| allowUnsignedInstaller |  Markierung, die die Ausführung des im Pfad angegebenen unsignierten Installationsprogramms ermöglicht. Der **Get-AuthenticodeSignature** Befehl wird verwendet, um Installationsprogramme zu validieren. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/imagebuilder/latest/userguide/toe-action-modules.html)  | Boolesch | Nein | false | true, false | 

**Beispiele**  
Die folgenden Beispiele zeigen Varianten des Eingabeabschnitts für Ihr Komponentendokument, abhängig von Ihrem Installationspfad.

**Eingabebeispiel: Installation im lokalen Dokumentpfad**

```
- name: local-path-install
  steps:
    - name: LocalPathInstaller
      action: InstallMSI
      inputs:
        path: C:\sample.msi
        logFile: C:\msilogs\local-path-install.log
        logOptions: '*VX'
        reboot: Allow
        properties:
          COMPANYNAME: '"Amazon Web Services"'
        ignoreAuthenticodeSignatureErrors: true
        allowUnsignedInstaller: true
```

**Eingabebeispiel: Amazon S3 S3-Pfadinstallation**

```
- name: s3-path-install
  steps:
    - name: S3PathInstaller
      action: InstallMSI
      inputs:
        path: s3://<bucket-name>/sample.msi
        logFile: s3-path-install.log
        reboot: Force
        ignoreAuthenticodeSignatureErrors: false
        allowUnsignedInstaller: true
```

**Eingabebeispiel: Installation eines Webpfads**

```
- name: web-path-install
  steps:
    - name: WebPathInstaller
      action: InstallMSI
      inputs:
        path: https://<some-path>/sample.msi
        logFile: web-path-install.log
        reboot: Skip
        ignoreAuthenticodeSignatureErrors: true
        allowUnsignedInstaller: false
```

**Ausgabe**  
Das Folgende ist ein Beispiel für die Ausgabe des `InstallMSI` Aktionsmoduls.

```
{
	"logFile": "web-path-install.log",
	"msiExitCode": 0,
	"stdout": ""
}
```

### Deinstallieren Sie MSI (Windows)
<a name="action-modules-uninstall-msi"></a>

Mit dem `UninstallMSI` Aktionsmodul können Sie eine Windows-Anwendung mithilfe einer MSI-Datei entfernen. Sie können den Speicherort der MSI-Datei mithilfe eines lokalen Dateipfads, einer S3-Objekt-URI oder einer Web-URL angeben. Die Neustartoption konfiguriert das Neustartverhalten des Systems.

AWSTOE generiert den **msiexec** Befehl auf der Grundlage der Eingabeparameter für das Aktionsmodul. Der Speicherort der MSI-Datei (`path`) und der Speicherort der Protokolldatei (`logFile`) werden bei der Generierung des **msiexec** Befehls explizit in doppelte Anführungszeichen („) eingeschlossen.

Die folgenden MSI-Exitcodes werden als erfolgreich angesehen:
+ 0 (Erfolg)
+ 1605 (ERROR\$1UNKNOWN\$1PRODUCT)
+ 1614 (ERROR\$1PRODUCT\$1DEINSTALLIERT)
+ 1641 (Neustart eingeleitet)
+ 3010 (Neustart erforderlich)


**Input**  

| Tastenname | Description | Typ | Erforderlich | Standardwert | Zulässige Werte | 
| --- | --- | --- | --- | --- | --- | 
| path |  Geben Sie den Speicherort der MSI-Datei mit einer der folgenden Methoden an: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/imagebuilder/latest/userguide/toe-action-modules.html) Verkettungsausdrücke sind zulässig.  | Zeichenfolge | Ja | – | – | 
| reboot |  Konfiguriert das Verhalten beim Systemneustart, das auf eine erfolgreiche Ausführung des Aktionsmoduls folgt. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/imagebuilder/latest/userguide/toe-action-modules.html)  | Zeichenfolge | Nein | Allow | Allow, Force, Skip | 
| logOptions |  Geben Sie die Optionen an, die für die MSI-Installationsprotokollierung verwendet werden sollen. Die angegebenen Flags werden zusammen mit den `/L` Befehlszeilenparametern zur Aktivierung der Protokollierung an das MSI-Installationsprogramm übergeben. Wenn keine Flags angegeben sind, AWSTOE wird der Standardwert verwendet. Weitere Informationen zu Protokolloptionen für MSI finden Sie unter [Befehlszeilenoptionen](https://docs.microsoft.com/en-us/windows/win32/msi/command-line-options) in der Microsoft *Windows Installer-Produktdokumentation*.  | Zeichenfolge | Nein | \$1VX | i,w,e,a,r,u,c,m,o,p,v,x,\$1,\$1,\$1 | 
| logFile |  Ein absoluter oder relativer Pfad zum Speicherort der Protokolldatei. Wenn der Protokolldateipfad nicht existiert, wird er erstellt. Wenn der Protokolldateipfad nicht angegeben wird, AWSTOE wird das MSI-Installationsprotokoll nicht gespeichert.  | Zeichenfolge | Nein | – | – | 
| properties |  Schlüssel-Wert-Paare für MSI-Logging-Eigenschaften, zum Beispiel: `TARGETDIR: "C:\target\location"`   Hinweis: Die Änderung der folgenden Eigenschaften ist nicht zulässig: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/imagebuilder/latest/userguide/toe-action-modules.html)  | Map [Zeichenfolge] Zeichenfolge | Nein | – | – | 
| ignoreAuthenticodeSignatureErrors |  Markierung zum Ignorieren von Fehlern bei der Überprüfung der Authenticode-Signatur für das im Pfad angegebene Installationsprogramm. Der **Get-AuthenticodeSignature** Befehl wird verwendet, um Installationsprogramme zu validieren. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/imagebuilder/latest/userguide/toe-action-modules.html)  | Boolesch | Nein | false | true, false | 
| allowUnsignedInstaller |  Markierung, die die Ausführung des im Pfad angegebenen unsignierten Installationsprogramms ermöglicht. Der **Get-AuthenticodeSignature** Befehl wird verwendet, um Installationsprogramme zu validieren. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/imagebuilder/latest/userguide/toe-action-modules.html)  | Boolesch | Nein | false | true, false | 

**Beispiele**  
Die folgenden Beispiele zeigen Varianten des Eingabeabschnitts für Ihr Komponentendokument, abhängig von Ihrem Installationspfad.

**Eingabebeispiel: Installation des lokalen Dokumentpfads entfernen**

```
- name: local-path-uninstall
  steps:
    - name: LocalPathUninstaller
      action: UninstallMSI
      inputs:
        path: C:\sample.msi
        logFile: C:\msilogs\local-path-uninstall.log
        logOptions: '*VX'
        reboot: Allow
        properties:
          COMPANYNAME: '"Amazon Web Services"'
        ignoreAuthenticodeSignatureErrors: true
        allowUnsignedInstaller: true
```

**Eingabebeispiel: Amazon S3 S3-Pfadinstallation entfernen**

```
- name: s3-path-uninstall
  steps:
    - name: S3PathUninstaller
      action: UninstallMSI
      inputs:
        path: s3://<bucket-name>/sample.msi
        logFile: s3-path-uninstall.log
        reboot: Force
        ignoreAuthenticodeSignatureErrors: false
        allowUnsignedInstaller: true
```

**Eingabebeispiel: Webpfad-Installation entfernen**

```
- name: web-path-uninstall
  steps:
    - name: WebPathUninstaller
      action: UninstallMSI
      inputs:
        path: https://<some-path>/sample.msi
        logFile: web-path-uninstall.log
        reboot: Skip
        ignoreAuthenticodeSignatureErrors: true
        allowUnsignedInstaller: false
```

**Ausgabe**  
Das Folgende ist ein Beispiel für die Ausgabe des `UninstallMSI` Aktionsmoduls.

```
{
	"logFile": "web-path-uninstall.log",
	"msiExitCode": 0,
	"stdout": ""
}
```

## Aktionsmodule des Systems
<a name="action-modules-system-actions"></a>

Im folgenden Abschnitt werden Aktionsmodule beschrieben, die Systemaktionen ausführen oder Systemeinstellungen aktualisieren.

**Topics**
+ [Neustart (Linux, Windows)](#action-modules-reboot)
+ [SetRegistry (Windows)](#action-modules-setregistry)
+ [OS aktualisieren (Linux, Windows)](#action-modules-updateos)

### Neustart (Linux, Windows)
<a name="action-modules-reboot"></a>

Das Aktionsmodul **Reboot startet** die Instanz neu. Es verfügt über eine konfigurierbare Option, um den Start des Neustarts zu verzögern. Standardmäßig `delaySeconds` ist auf eingestellt, was bedeutet`0`, dass es keine Verzögerung gibt. Das Schrittzeitlimit wird für das Aktionsmodul Neustart nicht unterstützt, da es nicht gilt, wenn die Instanz neu gestartet wird.

Wenn die Anwendung vom Systems Manager Agent aufgerufen wird, übergibt sie den Exit-Code (`3010`für Windows, `194` für Linux) an den Systems Manager Agent. Der Systems Manager Agent führt den Systemneustart wie unter [Managed Instance from Scripts neu starten](https://docs.aws.amazon.com/systems-manager/latest/userguide/send-commands-reboot.html) beschrieben durch.

Wenn die Anwendung auf dem Host als eigenständiger Prozess aufgerufen wird, speichert sie den aktuellen Ausführungsstatus, konfiguriert einen Auslöser für die automatische Ausführung nach dem Neustart, sodass die Anwendung nach dem Neustart erneut ausgeführt wird, und startet dann das System neu.

**Automatischer Start-Trigger nach dem Neustart:**
+ **Windows.** AWSTOE erstellt einen Windows Taskplaner-Eintrag mit einem Trigger, der automatisch ausgeführt wird unter `SystemStartup`
+ **Linux**. AWSTOE fügt einen Job in Crontab hinzu, der nach dem Neustart des Systems automatisch ausgeführt wird.

```
@reboot /download/path/awstoe run --document s3://bucket/key/doc.yaml
```

Dieser Trigger wird bereinigt, wenn die Anwendung gestartet wird.

**Erneute Versuche**  
Standardmäßig ist die maximale Anzahl von Wiederholungen auf den Systems Manager `CommandRetryLimit` festgelegt. Wenn die Anzahl der Neustarts das Wiederholungslimit überschreitet, schlägt die Automatisierung fehl. Sie können das Limit ändern, indem Sie die Konfigurationsdatei (`Mds.CommandRetryLimit`) des Systems Manager Manager-Agenten bearbeiten. Weitere Informationen finden Sie unter [Laufzeitkonfiguration](https://github.com/aws/amazon-ssm-agent/blob/mainline/README.md#runtime-configuration) im Open Source-System Manager-Agent.

Um das **Reboot-Aktionsmodul** für Schritte zu verwenden, die einen Neustart beinhalten `exitcode` (z. B.`3010`), müssen Sie die Anwendungsbinärdatei als ausführen`sudo user`.


**Input**  

| Tastenname | Description | Typ | Erforderlich | Standard | 
| --- | --- | --- | --- | --- | 
| delaySeconds | Verzögert eine bestimmte Zeit, bevor ein Neustart initiiert wird. | Ganzzahl |  Nein  |  `0`  | 

**Eingabebeispiel: Neustart-Schritt**

```
  - name: RebootStep
    action: Reboot
    onFailure: Abort
    maxAttempts: 2
    inputs:
      delaySeconds: 60
```

**Ausgabe**

Keine.

Wenn das **Reboot-Modul** abgeschlossen ist, fährt Image Builder mit dem nächsten Schritt im Build fort.

### SetRegistry (Windows)
<a name="action-modules-setregistry"></a>

Das **SetRegistry**Aktionsmodul akzeptiert eine Liste von Eingaben und ermöglicht es Ihnen, den Wert für den angegebenen Registrierungsschlüssel festzulegen. Wenn ein Registrierungsschlüssel nicht existiert, wird er im definierten Pfad erstellt. Diese Funktion gilt nur für Windows.


**Input**  

| Tastenname | Description | Typ | Erforderlich | 
| --- | --- | --- | --- | 
| path | Pfad des Registrierungsschlüssels. | Zeichenfolge | Ja | 
| name | Name des Registrierungsschlüssels. | Zeichenfolge | Ja | 
| value | Wert des Registrierungsschlüssels. | String/Number/Array | Ja | 
| type | Werttyp des Registrierungsschlüssels. | Zeichenfolge | Ja | 

**Unterstützte Pfadpräfixe**
+ `HKEY_CLASSES_ROOT / HKCR:`
+ `HKEY_USERS / HKU:`
+ `HKEY_LOCAL_MACHINE / HKLM:`
+ `HKEY_CURRENT_CONFIG / HKCC:`
+ `HKEY_CURRENT_USER / HKCU:`

**Unterstützte -Typen**
+ `BINARY`
+ `DWORD`
+ `QWORD`
+ `SZ`
+ `EXPAND_SZ`
+ `MULTI_SZ`

**Eingabebeispiel: Legen Sie die Werte der Registrierungsschlüssel fest**

```
  - name: SetRegistryKeyValues
    action: SetRegistry
    maxAttempts: 3
    inputs:
      - path: HKLM:\SOFTWARE\MySoftWare
        name: MyName
        value: FirstVersionSoftware
        type: SZ
      - path: HKEY_CURRENT_USER\Software\Test
        name: Version
        value: 1.1
        type: DWORD
```

**Ausgabe**

Keine.

### OS aktualisieren (Linux, Windows)
<a name="action-modules-updateos"></a>

Das **UpdateOS-Aktionsmodul** bietet Unterstützung für die Installation von Windows- und Linux-Updates. Es installiert standardmäßig alle verfügbaren Updates. Alternativ können Sie eine Liste mit einem oder mehreren spezifischen Updates konfigurieren, die das Aktionsmodul installieren soll. Sie können auch Updates angeben, die von der Installation ausgeschlossen werden sollen.

Wenn sowohl die Listen „Einschließen“ als auch „Ausschließen“ bereitgestellt werden, kann die resultierende Liste von Updates nur die Updates enthalten, die in der „Einschluss“ -Liste aufgeführt sind und nicht in der Ausschlussliste aufgeführt sind.

**Anmerkung**  
**UpdateOS** unterstützt Amazon Linux 2023 (AL2023) nicht. Wir empfehlen Ihnen, Ihr Basis-AMI auf die neue Version zu aktualisieren, die mit jeder Version geliefert wird. Weitere Alternativen finden Sie unter [Steuern der Updates, die Sie von Haupt- und Nebenversionen erhalten haben](https://docs.aws.amazon.com/linux/al2023/ug/deterministic-upgrades.html#controlling-release-updates), im *Amazon Linux 2023-Benutzerhandbuch*.
+ **Windows**. Updates werden von der auf dem Zielcomputer konfigurierten Update-Quelle installiert.
+ **Linux**. Die Anwendung sucht nach dem unterstützten Paketmanager auf der Linux-Plattform und verwendet entweder den `apt-get` Paketmanager `yum` oder. Wenn keiner von beiden unterstützt wird, wird ein Fehler zurückgegeben. Sie sollten über die `sudo` erforderlichen Berechtigungen verfügen, um das **UpdateOS-Aktionsmodul** auszuführen. Wenn Sie keine `sudo` Berechtigungen haben, `error.Input` wird ein zurückgegeben.


**Input**  

| Tastenname | Description | Typ | Erforderlich | 
| --- | --- | --- | --- | 
| include |  Für Windows können Sie Folgendes angeben: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/imagebuilder/latest/userguide/toe-action-modules.html) Für Linux können Sie ein oder mehrere Pakete angeben, die in die Liste der zu installierenden Updates aufgenommen werden sollen.  | Liste der Zeichenketten | Nein | 
| exclude |  Für Windows können Sie Folgendes angeben: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/imagebuilder/latest/userguide/toe-action-modules.html) Für Linux können Sie ein oder mehrere Pakete angeben, die von der Liste der Updates für die Installation ausgeschlossen werden sollen.  | Liste der Zeichenketten | Nein | 

**Eingabebeispiel: Unterstützung für die Installation von Linux-Updates hinzufügen**

```
  - name: UpdateMyLinux
    action: UpdateOS
    onFailure: Abort
    maxAttempts: 3
    inputs:
      exclude:
        - ec2-hibinit-agent
```

**Eingabebeispiel: Unterstützung für die Installation von Windows-Updates hinzufügen**

```
  - name: UpdateWindowsOperatingSystem
    action: UpdateOS
    onFailure: Abort
    maxAttempts: 3
    inputs:
      include:
        - KB1234567
        - '*Security*'
```

**Ausgabe**

Keine.