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

# Planifications

Attribuez des planifications aux scripts pour définir la fréquence et d'autres paramètres, tels que les informations d'identification d'exécution.

{% hint style="info" %}
Les planifications sont stockées dans le fichier de configuration `schedules.ps1`.
{% endhint %}

## Planifier une tâche

Pour planifier une tâche, accédez à la page Automation / Planifications et cliquez sur le bouton Nouvelle planification. Pour planifier un script, accédez à la page du script et cliquez sur Planifier.

Vous pouvez définir des planifications à partir de sélections simples telles que Chaque minute ou Chaque heure, ou vous pouvez définir vous-même des expressions CRON pour des planifications plus configurables. Vous pouvez également créer des planifications Unique qui s'exécutent une seule fois à une date ultérieure.

Vous pouvez également définir sous quel utilisateur la tâche planifiée s'exécute, ainsi que la version de PowerShell utilisée.

### Planifications simples

Les planifications simples sont en réalité des assistants pour diverses planifications CRON standard. Lorsque vous en sélectionnez une, elle définit une planification CRON pour votre script.

### CRON

Les planifications CRON utilisent des expressions CRON pour définir les planifications. PowerShell Universal tire parti d'une bibliothèque appelée Cronos. Pour plus d'exemples d'expressions valides, [cliquez ici](https://github.com/HangfireIO/Cronos).

Voici quelques exemples d'expressions CRON de base.

| Expression           | Description                                                            |
| -------------------- | ---------------------------------------------------------------------- |
| `* * * * *`          | Chaque minute                                                          |
| `0 0 1 * *`          | À minuit, le 1er de chaque mois                                        |
| `*/5 * * * *`        | Toutes les 5 minutes                                                   |
| `30,45-15/2 1 * * *` | Toutes les 2 minutes de 1h00 à 1h15 et de 1h45 à 1h59, ainsi qu'à 1h30 |
| `0 0 * * MON-FRI`    | À 00h00, du lundi au vendredi                                          |

### Unique

Les planifications uniques s'exécutent une seule fois dans le futur. Vous pouvez sélectionner l'heure et le jour auxquels elles s'exécuteront.

### Continue

Les planifications continues s'exécutent en boucle. Vous pouvez définir un délai entre chaque exécution de la tâche planifiée.

## Paramètres

Les planifications prennent en charge la définition de paramètres pour les scripts. Par exemple, si vous avez un script qui accepte un paramètre, vous pouvez choisir de passer une valeur à ce paramètre lors de la planification.

```powershell
param($UserName)

$UserName
```

Dans la fenêtre modale de définition de la planification, vous pouvez définir la valeur du paramètre.

Lors de la modification des planifications depuis PowerShell, vous pouvez définir les paramètres sur le cmdlet `New-PSUSchedule`. Ce cmdlet accepte une table de hachage représentant les paramètres du script, ce qui vous permet de passer les valeurs pour votre planification.

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

## Environnements

Lors de la création d'une planification, vous pouvez spécifier l'[environnement](/powershell-universal/fr/config/environments.md) dans lequel votre tâche s'exécutera. Par défaut, l'environnement par défaut est utilisé. Vous pouvez définir un environnement dans l'interface utilisateur à l'aide de la liste déroulante Environnement. Vous pouvez définir un environnement à l'aide du paramètre `-Environment` dans `New-PSUSchedule`.

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

## Exécuter en tant que

Vous pouvez définir sous quel utilisateur exécuter la planification à l'aide du sélecteur Exécuter en tant que dans l'interface utilisateur. Ce sélecteur contient une liste de [variables](/powershell-universal/fr/plateforme/variables.md) PSCredential que vous avez définies. Vous devez définir une variable PSCredential avant que le sélecteur Exécuter en tant que soit visible. Par défaut, les tâches planifiées s'exécutent sous les informations d'identification de l'utilisateur qui exécute PowerShell Universal.

Vous pouvez définir un utilisateur Exécuter en tant que dans un script à l'aide du paramètre `-Credential`. La valeur doit être le nom de la variable qui contient vos informations d'identification.

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

## Ordinateur

Vous pouvez sélectionner l'ordinateur ou les ordinateurs sur lesquels exécuter la planification. Par défaut, les planifications s'exécutent sur n'importe quel ordinateur disponible. Si vous sélectionnez Tous les ordinateurs, la planification s'exécute sur tous les ordinateurs connectés au cluster PSU. Si vous sélectionnez un ordinateur spécifique, la planification s'exécute uniquement sur cet ordinateur.

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

## Conditions

Vous pouvez définir des conditions qui déterminent si une planification doit être exécutée. Cela est utile si vous utilisez les mêmes scripts de référentiel pour plusieurs environnements. Actuellement, les conditions ne peuvent pas être définies dans la console d'administration. Les conditions sont transmises au script et à la planification actuels en tant que paramètres. Le bloc de script de condition s'exécute dans l'environnement intégré.

La condition doit retourner vrai ou faux. Voici un exemple de condition où la planification ne s'exécute que s'il existe une variable d'environnement nommée `Slot` contenant la valeur `production`.

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

## Mise en pause des planifications

Vous pouvez mettre en pause une planification en définissant la propriété Paused. Lorsqu'une planification est mise en pause, elle ne s'exécute pas. Cela est utile pour arrêter l'exécution d'une planification sans la supprimer.

## Délai d'expiration

Vous pouvez définir un délai d'expiration pour les tâches planifiées. Le délai d'expiration correspond au nombre de minutes avant l'annulation de la tâche planifiée.

## Délai aléatoire

La propriété Délai aléatoire entraîne le démarrage d'une planification entre 0 et 60 secondes à partir de l'heure planifiée. Cela est utile lorsque de nombreuses planifications s'exécutent en même temps. Par exemple, si vous avez 10 planifications qui démarrent à minuit, vous pouvez définir un délai aléatoire pour limiter la contention de ressources sur le service PowerShell Universal.

## Disponible dans la branche

Dans les environnements multi-branches, il peut être nécessaire d'éviter l'exécution de planifications en fonction de la branche chargée dans PowerShell Universal. Vous pouvez utiliser l'option `-AvailableInBranch` sur `New-PSUSchedule` pour éviter qu'une planification s'exécute dans une certaine branche. Cette valeur est également disponible dans la console d'administration sous les paramètres de planification lorsque git est activé.

<figure><img src="/files/kymA1LR2331Ro3CBKP7C" alt=""><figcaption><p>Disponible dans la branche</p></figcaption></figure>

## API

* [New-PSUSchedule](https://github.com/Devolutions/doc-gitbook/blob/master/translations/fr/powershell-universal/cmdlets/New-PSUSchedule.txt)
* [Get-PSUSchedule](https://github.com/Devolutions/doc-gitbook/blob/master/translations/fr/powershell-universal/cmdlets/Get-PSUSchedule.txt)
* [Remove-PSUSchedule](https://github.com/Devolutions/doc-gitbook/blob/master/translations/fr/powershell-universal/cmdlets/Remove-PSUSchedule.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/schedules.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.
