> 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/triggers.md).

# Trigger

{% hint style="info" %}
Trigger erfordern eine [Lizenz](https://store.devolutions.net/package#psu).
{% endhint %}

Trigger ermöglichen es, Automatisierungsjobs zu starten, wenn bestimmte Ereignisse in PowerShell Universal eintreten. Dies erlaubt Ihnen beispielsweise, Maßnahmen zu ergreifen, wenn Jobs abgeschlossen werden, der Server startet oder Dashboards angehalten werden. Trigger sind nützlich, um eine globale Fehlerbehandlung zuzuweisen oder Benachrichtigungen zu senden, wenn bestimmte Dinge geschehen.

{% hint style="info" %}
Ausgelöste Jobs führen nicht dazu, dass weitere Trigger gestartet werden. Trigger werden in der `triggers.ps1` gespeichert.
{% endhint %}

## Trigger-Ereignisse

Den folgenden Ereignistypen kann ein Trigger zugewiesen werden.

* Job gestartet
* Job abgebrochen
* Job abgeschlossen
* Job mit Fehler abgeschlossen
* Job fordert Feedback an
* Job fehlgeschlagen
* Job-Zeitüberschreitung
* App (Dashboard) gestartet
* App (Dashboard) angehalten
* App (Dashboard)-Sitzung abgelaufen
* Event Hub verbunden
* Event Hub getrennt
* Health Check fehlgeschlagen
* Server gestartet
* Server wird angehalten
* Neue Benutzeranmeldung
* Benutzeranmeldung
* Verwendung eines widerrufenen App-Tokens
* API-Authentifizierung fehlgeschlagen
* API-Fehler
* Git-Synchronisierung
* Lizenz abgelaufen
* Lizenz läuft ab
* Computer offline

### Neue Benutzeranmeldung

Das Benutzeranmeldungsereignis findet statt, wenn ein Benutzer auf PowerShell Universal zugreift. Das Skript erhält einen `$User`-Parameter mit Benutzerinformationen.

```powershell
@{
    Name = "username"
    Roles = @()
}
```

### Benutzeranmeldung

Das Benutzeranmeldungsereignis findet statt, wenn ein Benutzer auf PowerShell Universal zugreift. Das Skript erhält einen `$data`-Parameter mit Benutzerinformationen. Die Datenstruktur ist unten dargestellt.

```powershell
@{
    UserName = 'username'
    RemoteIpAddress = ''
    LocalPort = ''
    RemotePort = ''
}
```

### Verwendung eines widerrufenen App-Tokens

Das App-Token-Ereignis findet statt, wenn ein widerrufenes App-Token verwendet wird. Das Skript erhält einen `$data`-Parameter, der den Inhalt des App-Tokens als Zeichenfolge enthält.

### Git-Synchronisierung

Dieser Trigger tritt auf, wenn eine Git-Synchronisierung ausgeführt wird. Dieser Trigger wird sowohl bei erfolgreichen als auch bei fehlgeschlagenen Git-Synchronisierungen ausgelöst.

Sie erhalten das folgende Objekt im `$data`-Parameter.

```csharp
public class GitStatus 
{
    public long Id { get; set; }
    public string CommitId { get; set; }
    public DateTime Timestamp { get; set; }
    public TimeSpan SyncTime { get; set; }
    public int Changes { get; set; }
    public string Location { get; set; }
    public string Remote { get; set; }
    public GitStatusResult Result { get; set; }
    public string ResultMessage { get; set; }
    public string ComputerName { get; set; }
}
```

### Computer offline

Der Trigger „Computer offline“ stellt das Computerobjekt im `$Data`-Parameter bereit.

```powershell
class Computer
{
    [long]$Id
    [string]$Name
    [DateTime]$HeartBeat
    [ComputerStatus]$Status
    [bool]$Maintenance
    [bool]$Deleted
    [List<ComputerTag>]$Tags
    [string]$Version
    [DateTime]$FileSyncTimestamp
    [string]$DeploymentVersion
    [string]$DeploymentName
    [string]$GitSettings
    [string]$GitBranch
    [ComputerType]$Type
}

enum ComputerStatus
{
    Offline,
    Online,
    Busy,
    Loading,
    StartupError
}

enum ComputerType
{
    Server,
    Agent
}
```

## Globale Trigger

Globale Trigger starten das zugewiesene Skript immer dann, wenn der Ereignistyp aufgerufen wird.

Beispielsweise wird die `Script.ps1` immer dann ausgeführt, wenn ein Job ausgeführt wird.

```powershell
New-PSUTrigger -Name 'Trigger' -EventType JobStarted -TriggerScript Script.ps1
```

## Ressourcen-Trigger

Ressourcen-Trigger starten das zugewiesene Skript, wenn das Ereignis auf der ausgewählten Ressource eintritt.

Beispielsweise wird die `Script.ps1` immer dann ausgeführt, wenn das `Dashboard` angehalten wird.

```powershell
New-PSUTrigger -Name 'Trigger' -EventType DashboardStopped -TriggerScript Script.ps1 -Dashboard 'Dashboard'
```

## Ereignis-Metadaten

Immer wenn ein Job von einem Trigger gestartet wird, werden ihm Metadaten über das Objekt bereitgestellt, das das Ereignis ausgelöst hat.

Trigger, die sich auf Jobs beziehen, erhalten einen `$Job`-Parameter.

```powershell
param($Job)

$Job
```

Trigger, die sich auf Dashboards beziehen, erhalten einen `$Dashboard`-Parameter.

```powershell
param($Dashboard)

$Dashboard
```

Trigger, die sich auf den Serverstatus beziehen, erhalten keinen Parameter.

## Bedingungen

Mit dem `-Condition`-Parameter von `New-PSUTrigger` können Sie anhand lokaler Bedingungen auf dem Server festlegen, ob ein Trigger ausgeführt werden soll oder nicht. Geben Sie `$true` oder `$false` aus der Bedingung zurück.

Beispielsweise können Sie einen Trigger deaktivieren, wenn die Umgebungsvariable `Environment` nicht auf `production` gesetzt ist.

```powershell
New-PSUTrigger -Condition {
   $Env:Environment -eq 'production'
}
```

## API

* [New-PSUTrigger](/powershell-universal/de/powershell-befehle/new-psutrigger.md)
* [Remove-PSUTrigger](/powershell-universal/de/powershell-befehle/remove-psutrigger.md)
* [Set-PSUTrigger](/powershell-universal/de/powershell-befehle/set-psutrigger.md)
* [Get-PSUTrigger](/powershell-universal/de/powershell-befehle/get-psutrigger.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/triggers.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.
