> 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

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

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

## Einen Job planen

Um einen Job zu planen, gehen Sie zur Seite Automatisierung / Zeitpläne und klicken Sie auf die Schaltfläche Neuer Zeitplan. Um ein Skript zu planen, gehen Sie zur Seite des Skripts und klicken Sie auf Planen.

Sie können Zeitpläne basierend auf einfachen Auswahlmöglichkeiten wie Jede Minute oder Jede Stunde definieren, oder Sie können CRON-Ausdrücke selbst definieren, um besser konfigurierbare Zeitpläne zu erstellen. Sie können auch einmalige Zeitpläne ausführen, die einmal zu einem späteren Zeitpunkt laufen.

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 Hilfen 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, um Zeitpläne zu definieren. PowerShell Universal nutzt eine Bibliothek namens Cronos. Weitere Beispiele für gültige Ausdrücke finden Sie [hier](https://github.com/HangfireIO/Cronos).

Einige Beispiele für einfache CRON-Ausdrücke sind unten aufgeführt.

| 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 und um 1:30 Uhr |
| `0 0 * * MON-FRI`    | Um 00:00, 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 den einzelnen geplanten Job-Ausführungen 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 wählen, während des Zeitplans einen Wert an den Parameter zu übergeben.

```powershell
param($UserName)

$UserName
```

Innerhalb des Modals zur Definition des Zeitplans können Sie den Parameterwert festlegen.

Beim Bearbeiten von Zeitplänen über PowerShell können Sie die Parameter im Cmdlet `New-PSUSchedule` definieren. Dieses Cmdlet akzeptiert eine Hashtabelle, 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ü Umgebung definieren. Sie können eine Umgebung mit dem Parameter `-Environment` in `New-PSUSchedule` definieren.

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

## Ausführen als

Sie können festlegen, als welcher Benutzer der Zeitplan ausgeführt wird, indem Sie den Auswähler „Ausführen als“ in der Benutzeroberfläche verwenden. Der Auswähler „Ausführen als“ 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 Auswähler „Ausführen als“ sichtbar ist. Standardmäßig werden geplante Jobs unter den Anmeldeinformationen des Benutzers ausgeführt, der PowerShell Universal ausführt.

Sie können einen „Ausführen als“-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 Alle Computer auswählen, wird der Zeitplan auf allen mit dem PSU-Cluster verbundenen Computern ausgeführt. 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. Unten sehen Sie ein Beispiel für eine Bedingung, bei der der Zeitplan nur ausgeführt wird, wenn eine Umgebungsvariable namens `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 Pausiert setzen. 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 „Zufällige Verzögerung“ bewirkt, dass ein Zeitplan 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 beim PowerShell Universal-Dienst zu begrenzen.

## In Branch verfügbar

In Umgebungen mit mehreren Branches kann es notwendig sein, die Ausführung von Zeitplänen basierend auf dem in PowerShell Universal geladenen Branch zu vermeiden. 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 Zeitplan-Einstellungen verfügbar, wenn Git aktiviert ist.

<figure><img src="/files/149UmGbA9iGO7QhnqtDx" alt=""><figcaption><p>In Branch verfügbar</p></figcaption></figure>

## 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.
