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

# Déclencheurs

{% hint style="info" %}
Les déclencheurs nécessitent une [licence](https://ironmansoftware.com/pricing/powershell-universal).
{% endhint %}

Les déclencheurs permettent de démarrer des tâches d'automatisation lorsque certains événements se produisent dans PowerShell Universal. Par exemple, ils vous permettent d'agir lorsque des tâches se terminent, que le serveur démarre ou que des applications s'arrêtent. Les déclencheurs sont utiles pour attribuer une gestion globale des erreurs ou envoyer des notifications lorsque certains événements se produisent.

{% hint style="info" %}
Les tâches déclenchées ne provoqueront pas le démarrage de déclencheurs supplémentaires. Les déclencheurs sont stockés dans `triggers.ps1`.
{% endhint %}

## Événements de déclencheur

Les types d'événements suivants peuvent se voir attribuer un déclencheur.

* Tâche démarrée
* Tâche annulée
* Tâche terminée
* Tâche terminée avec une erreur
* Tâche en attente de commentaires
* Tâche échouée
* Tâche expirée
* Application (tableau de bord) démarrée
* Application (tableau de bord) arrêtée
* Session d'application (tableau de bord) expirée
* Event Hub connecté
* Event Hub déconnecté
* Échec de la vérification de l'état
* Serveur démarré
* Serveur en cours d'arrêt
* Nouvelle connexion d'utilisateur
* Connexion d'utilisateur
* Utilisation d'un jeton d'application révoqué
* Échec d'authentification API
* Erreur API
* Synchronisation Git
* Licence expirée
* Licence arrivant à expiration
* Ordinateur hors ligne

### Nouvelle connexion d'utilisateur

L'événement de connexion d'utilisateur se produit lorsqu'un utilisateur accède à PowerShell Universal. Le script recevra un paramètre `$User` contenant les informations de l'utilisateur.

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

### Connexion d'utilisateur

L'événement de connexion d'utilisateur se produit lorsqu'un utilisateur accède à PowerShell Universal. Le script recevra un paramètre `$data` contenant les informations de l'utilisateur. La structure des données est présentée ci-dessous.

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

### Utilisation d'un jeton d'application révoqué

L'événement de jeton d'application se produit lorsqu'un jeton d'application révoqué est utilisé. Le script recevra un paramètre `$data` contenant le contenu du jeton d'application sous forme de chaîne de caractères.

### Synchronisation Git

Ce déclencheur se produit lors de l'exécution d'une synchronisation Git. Il se déclenchera pour les synchronisations Git réussies comme échouées.

Vous recevrez l'objet suivant dans le paramètre `$data`.

```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; }
}
```

### Ordinateur hors ligne

Le déclencheur d'ordinateur hors ligne fournira l'objet ordinateur au paramètre `$Data`.

```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
}
```

## Déclencheurs globaux

Les déclencheurs globaux démarreront le script attribué chaque fois que le type d'événement est invoqué.

Par exemple, `Script.ps1` sera exécuté chaque fois qu'une tâche est lancée.

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

## Déclencheurs de ressources

Les déclencheurs de ressources démarreront le script attribué lorsque l'événement se produit sur la ressource sélectionnée.

Par exemple, `Script.ps1` sera exécuté chaque fois que le `Dashboard` est arrêté.

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

## Métadonnées d'événement

Chaque fois qu'une tâche est démarrée par un déclencheur, elle reçoit des métadonnées sur l'objet qui a provoqué le déclenchement de l'événement.

Les déclencheurs liés aux tâches recevront un paramètre `$Job`.

```powershell
param($Job)

$Job
```

Les déclencheurs liés aux tableaux de bord recevront un paramètre `$Dashboard`.

```powershell
param($Dashboard)

$Dashboard
```

Les déclencheurs liés à l'état du serveur ne recevront pas de paramètre.

## Conditions

En utilisant le paramètre `-Condition` de `New-PSUTrigger`, vous pouvez déterminer si un déclencheur doit être exécuté en fonction des conditions locales du serveur. Retournez `$true` ou `$false` depuis la condition.

Par exemple, vous pouvez désactiver un déclencheur si la variable d'environnement `Environment` n'est pas définie sur `production`.

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

## API

* [New-PSUTrigger](https://github.com/Devolutions/doc-gitbook/blob/master/translations/fr/powershell-universal/cmdlets/New-PSUTrigger.txt)
* [Remove-PSUTrigger](https://github.com/Devolutions/doc-gitbook/blob/master/translations/fr/powershell-universal/cmdlets/Remove-PSUTrigger.txt)
* [Set-PSUTrigger](https://github.com/Devolutions/doc-gitbook/blob/master/translations/fr/powershell-universal/cmdlets/Set-PSUTrigger.txt)
* [Get-PSUTrigger](https://github.com/Devolutions/doc-gitbook/blob/master/translations/fr/powershell-universal/cmdlets/Get-PSUTrigger.txt)


---

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

```
GET https://docs.devolutions.net/powershell-universal/fr/automation/triggers.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
