> For the complete documentation index, see [llms.txt](https://docs.devolutions.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.devolutions.net/powershell-universal/de/automatisierung/schedules.md).

# Zeitpläne

Planen Sie PowerShell Universal-Skripte mit einfachen Intervallen, CRON-Ausdrücken, Einmalausführungen oder kontinuierlichen Jobs, einschließlich Run-As-Konten und Bedingungen.

Weisen Sie Skripten Zeitpläne zu, um die Häufigkeit und andere Parameter für ein Skript festzulegen, wie z. B. Run-As-Anmeldeinformationen.

{% hint style="info" %}
Zeitpläne werden in der Konfigurationsdatei `schedules.ps1` gespeichert.
{% endhint %}

## Einen Job planen

Um einen Job zu planen, gehen Sie zu **Run > Schedules** und klicken Sie auf die Schaltfläche New Schedule. Um ein Skript zu planen, gehen Sie zur Seite des Skripts und klicken Sie auf Schedule.

Sie können Zeitpläne anhand einfacher Auswahlmöglichkeiten wie Every Minute oder Every Hour definieren, oder Sie können CRON-Ausdrücke selbst definieren, um besser konfigurierbare Zeitpläne zu erhalten. Sie können auch einmalige Zeitpläne (One Time) ausführen, die einmal zu einem späteren Zeitpunkt ausgeführt werden.

Sie können auch festlegen, unter welchem Benutzer der geplante Job ausgeführt wird und welche PowerShell-Version er verwendet.

### Einfache Zeitpläne

Einfache Zeitpläne sind eigentlich nur Hilfsmittel für verschiedene Standard-CRON-Zeitpläne. Wenn Sie einen auswählen, wird ein CRON-Zeitplan für Ihr Skript definiert.

### CRON

CRON-Zeitpläne verwenden CRON-Ausdrücke zur Definition von Zeitplänen. PowerShell Universal nutzt dazu eine Bibliothek namens Cronos. Weitere Beispiele für gültige Ausdrücke finden Sie [hier](https://github.com/HangfireIO/Cronos).

Nachfolgend finden Sie einige Beispiele für grundlegende CRON-Ausdrücke.

| Ausdruck             | Beschreibung                                                                             |
| -------------------- | ---------------------------------------------------------------------------------------- |
| `* * * * *`          | Jede Minute                                                                              |
| `0 0 1 * *`          | Um Mitternacht, am 1. Tag jedes Monats                                                   |
| `*/5 * * * *`        | Alle 5 Minuten                                                                           |
| `30,45-15/2 1 * * *` | Alle 2 Minuten von 1:00 Uhr bis 1:15 Uhr und von 1:45 Uhr bis 1:59 Uhr sowie um 1:30 Uhr |
| `0 0 * * MON-FRI`    | Um 00:00 Uhr, Montag bis Freitag                                                         |

### Einmalig

Einmalige Zeitpläne werden einmal in der Zukunft ausgeführt. Sie können die Uhrzeit und den Tag der Ausführung auswählen.

### Kontinuierlich

Kontinuierliche Zeitpläne werden immer wieder ausgeführt. Sie können eine Verzögerung zwischen jeder geplanten Jobausführung festlegen.

## Parameter

Zeitpläne unterstützen das Festlegen von Parametern für Skripte. Wenn Sie beispielsweise ein Skript haben, das einen Parameter akzeptiert, können Sie festlegen, dass während des Zeitplans ein Wert an den Parameter übergeben wird.

```powershell
param($UserName)

$UserName
```

Im Dialogfenster zum Definieren des Zeitplans können Sie den Parameterwert festlegen.

Wenn Sie Zeitpläne über PowerShell bearbeiten, können Sie die Parameter im Cmdlet `New-PSUSchedule` definieren. Dieses Cmdlet akzeptiert eine Hashtable, die die Parameter des Skripts darstellt, sodass Sie die Werte für Ihren Zeitplan übergeben können.

```powershell
New-PSUSchedule -Script "MyScript.ps1" -Cron '* * * * *' -Parameters @{ UserName = 'adam' }
```

## Umgebungen

Beim Erstellen eines Zeitplans können Sie die [Umgebung](/powershell-universal/de/config/environments.md) angeben, in der Ihr Job ausgeführt werden soll. Standardmäßig wird die Standardumgebung verwendet. Sie können eine Umgebung in der Benutzeroberfläche über das Dropdown-Menü Environment definieren. Über den Parameter `-Environment` in `New-PSUSchedule` können Sie eine Umgebung definieren.

```powershell
New-PSUSchedule -Script "MyScript.ps1" -Cron '* * * * *' -Environment '7.1'
```

## Run As

Sie können mit dem Run As-Selektor in der Benutzeroberfläche festlegen, als welcher Benutzer der Zeitplan ausgeführt wird. Der Run As-Selektor enthält eine Liste der von Ihnen definierten PSCredential-[Variablen](/powershell-universal/de/plattform/variables.md). Sie müssen eine PSCredential-Variable definieren, bevor der Run As-Selektor sichtbar ist. Standardmäßig werden geplante Jobs unter den Anmeldeinformationen des Benutzers ausgeführt, der PowerShell Universal ausführt.

Sie können einen Run As-Benutzer in einem Skript mit dem Parameter `-Credential` definieren. Der Wert sollte der Name der Variablen sein, die Ihre Anmeldeinformationen enthält.

```powershell
New-PSUSchedule -Script "MyScript.ps1" -Cron '* * * * *' -Credential 'MyUser'
```

## Computer

Sie können den Computer oder die Computer auswählen, auf denen der Zeitplan ausgeführt werden soll. Standardmäßig werden Zeitpläne auf jedem verfügbaren Computer ausgeführt. Wenn Sie All Computers auswählen, wird der Zeitplan auf allen Computern ausgeführt, die mit dem PSU-Cluster verbunden sind. Wenn Sie einen bestimmten Computer auswählen, wird der Zeitplan nur auf diesem Computer ausgeführt.

```powershell
New-PSUSchedule -Script "MyScript.ps1" -Cron '* * * * *' -Computer 'PSUNODE1'
```

## Bedingungen

Sie können Bedingungen definieren, die bestimmen, ob ein Zeitplan ausgeführt werden soll. Dies ist nützlich, wenn Sie dieselben Repository-Skripte für mehrere Umgebungen verwenden. Derzeit können Bedingungen nicht in der Admin-Konsole definiert werden. Bedingungen werden dem aktuellen Skript und Zeitplan als Parameter übergeben. Der Bedingungs-Scriptblock wird innerhalb der integrierten Umgebung ausgeführt.

Die Bedingung muss true oder false zurückgeben. Nachfolgend finden Sie ein Beispiel für eine Bedingung, bei der der Zeitplan nur ausgeführt wird, wenn eine Umgebungsvariable mit dem Namen `Slot` vorhanden ist, die den Wert `production` enthält.

```powershell
New-PSUSchedule -Script "MyScript.ps1" -Cron '* * * * *' -Condition {
  $ENV:Slot -eq 'production'
}
```

## Zeitpläne pausieren

Sie können einen Zeitplan pausieren, indem Sie die Eigenschaft Paused festlegen. Wenn ein Zeitplan pausiert ist, wird er nicht ausgeführt. Dies ist nützlich, um die Ausführung eines Zeitplans zu stoppen, ohne ihn zu löschen.

## Zeitüberschreitung

Sie können eine Zeitüberschreitung für geplante Jobs festlegen. Die Zeitüberschreitung ist die Anzahl der Minuten, bevor der geplante Job abgebrochen wird.

## Zufällige Verzögerung

Die Eigenschaft Random Delay führt dazu, dass ein Zeitplan irgendwann zwischen 0 und 60 Sekunden nach der geplanten Zeit startet. Dies ist nützlich, wenn viele Zeitpläne gleichzeitig ausgeführt werden. Wenn Sie beispielsweise 10 Zeitpläne haben, die um Mitternacht starten, möchten Sie möglicherweise eine zufällige Verzögerung festlegen, um Ressourcenkonflikte im PowerShell Universal-Dienst zu begrenzen.

## Available in Branch

In Umgebungen mit mehreren Branches kann es notwendig sein, die Ausführung von Zeitplänen abhängig davon zu vermeiden, welcher Branch in PowerShell Universal geladen ist. Sie können die Option `-AvailableInBranch` in `New-PSUSchedule` verwenden, um zu verhindern, dass ein Zeitplan ausgeführt wird, wenn ein bestimmter Branch ausgeführt wird. Dieser Wert ist auch in der Admin-Konsole unter den Zeitplaneinstellungen verfügbar, wenn Git aktiviert ist.

## API

* [New-PSUSchedule](/powershell-universal/de/powershell-befehle/new-psuschedule.md)
* [Get-PSUSchedule](/powershell-universal/de/powershell-befehle/get-psuschedule.md)
* [Remove-PSUSchedule](/powershell-universal/de/powershell-befehle/remove-psuschedule.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.devolutions.net/powershell-universal/de/automatisierung/schedules.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
