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

# Paramètres

## Paramètres

Les tâches prennent en charge la génération automatique de formulaires avec des paramètres basés sur le bloc `param` de votre script. Le type de contrôle varie selon le type défini dans le bloc. Les paramètres obligatoires seront également requis par l'interface utilisateur.

### Paramètres de base

Les paramètres peuvent être définis simplement, sans aucun attribut de paramètre, et ils apparaîtront sous forme de zones de texte dans l'interface utilisateur.

```powershell
param($Test)

$Test
```

### Types de paramètres

Universal prend en charge différents types de paramètres. Vous pouvez utiliser les types String, String\[], Int, DateTime, Boolean, Switch et Enum.

#### String

Vous pouvez définir des paramètres de type chaîne en spécifiant le type `[String]` ou en ne spécifiant aucun type. Les chaînes génèrent une zone de texte.

```powershell
param(
    [String]$Textbox,
    $Textbox2
)
```

![](/files/Ik3NVLAS88M3zSZqLLeJ)

#### Tableaux de chaînes

Vous pouvez spécifier des tableaux de chaînes en utilisant le spécificateur de type `[String[]]`. Les tableaux de chaînes génèrent une zone de sélection à plusieurs étiquettes.

```powershell
param([String[]]$Array)
```

![](/files/RQ2QFA2BR62DeenRy9gZ)

#### Date et heure

Vous pouvez utiliser le spécificateur de type `[DateTime]` pour créer un sélecteur de date et d'heure.

```powershell
param([DateTime]$DateTime)
```

![](/files/D8bg5SNAiAs6xVaGlpbn)

#### Booléen

Vous pouvez utiliser un sélecteur de type `[Bool]` pour créer un commutateur.

```powershell
param([Bool]$Switch)
```

![](/files/4aGvG0DhxSHhADixuFEk)

#### Entier

Vous pouvez définir un sélecteur numérique en utilisant le spécificateur de type `[Int]`.

```powershell
param([Int]$Number)
```

![](/files/c8xq5ptrEpFUlOX1z9of)

#### Paramètre Switch

Vous pouvez définir un paramètre switch en utilisant le spécificateur de type `[Switch]` pour créer un commutateur.

```powershell
param([Switch]$Switch)
```

![](/files/4flvLz3RmZINudiRKGVC)

#### Énumérations

Vous pouvez utiliser des valeurs System.Enum pour créer des listes déroulantes. Par exemple, vous pouvez utiliser `System.DayOrWeek` pour créer une liste de sélection du jour de la semaine.

```powershell
param([System.DayOfWeek]$DayOfWeek)
```

![](/files/jzZ27jdQmSvGhFxUR2Ai)

#### PSCredential

Lorsque vous spécifiez un `PSCredential`, l'utilisateur se voit présenter une liste déroulante des informations d'identification disponibles en tant que [variables](/powershell-universal/fr/plateforme/variables.md#creating-a-secret-variable).

```powershell
param(
    [PSCredential]$Credential
)
```

![](/files/AG2HCCBSBwIiJNyIm9qn)

#### Fichier

Vous pouvez permettre aux utilisateurs de téléverser des fichiers en utilisant le type `[File]`.

```powershell
param(
    [File]$File
)
```

Les fichiers seront disponibles en tant qu'objet `PSUFile` dans vos scripts. Cet objet possède un tableau `byte[]` que vous pouvez utiliser pour traiter le fichier.

Par exemple, vous pouvez obtenir le contenu textuel du fichier en le convertissant à l'aide des classes d'encodage.

```powershell
[Text.Encoding]::UTF8.GetString($File.Content)
```

### Nom d'affichage

Vous pouvez utiliser le `DisplayNameAtrribute` pour définir un nom d'affichage pour le paramètre de script.

```powershell
param(
    [ComponentModel.DisplayName("My Script")]
    $MyScript
)
```

![](/files/rnK4rxjQzTKB4LUED9hj)

### Messages d'aide

Vous pouvez définir des messages d'aide pour vos paramètres en utilisant la propriété `HelpMessage` de l'attribut `Parameter`.

```powershell
param(
    [Parameter(HelpMessage = "Class you want to enroll in")]
    [string]$Class
)
```

![](/files/Vocb8LD0429B94GRQd4g)

### Paramètres obligatoires

Vous pouvez utiliser l'attribut Parameter pour définir des paramètres obligatoires.

```powershell
param(
    [Parameter(Mandatory)]
    $RequiredParameter
)

$RequiredParameter
```

![](/files/Elg6Q2gtCOz5BbzpFSE2)

### Valeur par défaut

Vous pouvez utiliser à la fois des valeurs statiques et des valeurs par défaut pour les paramètres. La valeur par défaut est calculée au moment où la tâche est sur le point d'être exécutée.

```powershell
param(
    $Parameter = "Hello, World",
    [DateTime]$ExecutionTime = Get-Date
)

$Parameter
$ExecutionTime
```

## ValidateSet

L'attribut `ValidateSet` est utilisé pour imposer les valeurs pouvant être transmises à un paramètre. En savoir plus sur [ValidateSet ici.](https://duckduckgo.com/?q=validateset\&ia=web) PowerShell Universal crée automatiquement un menu déroulant avec les valeurs fournies à l'attribut `ValidateSet` pour les paramètres.

Par exemple, un script pourrait définir un bloc param comme suit.

```powershell
param(
    [ValidateSet("Steve", "Mary")]
    [string]$Name
)
```

Le résultat est illustré ci-dessous.

<figure><img src="/files/3OffbdASmf71HHTb8FNY" alt=""><figcaption><p>Attribut ValidateSet</p></figcaption></figure>

## Passer des paramètres depuis PowerShell

Vous pouvez transmettre des paramètres depuis PowerShell en utilisant la cmdlet `Invoke-PSUScript`. Cette cmdlet prend en charge les paramètres dynamiques. Si votre script possède un bloc `param`, ces paramètres seront automatiquement ajoutés à `Invoke-PSUScript`.

Par exemple, si vous disposez d'un script nommé Script1.ps1 dont le contenu est le suivant.

```powershell
param($MyParameter)

$MyParameter
```

Vous pourriez alors appeler ce script avec la syntaxe suivante.

```powershell
Invoke-PSUScript -Name 'Script.ps1' -MyParameter "Hello"
```

Le résultat serait que Hello s'afficherait dans le journal de la tâche et dans le pipeline.

## Ensembles de paramètres

PowerShell Universal prend en charge les ensembles de paramètres. Lorsqu'un ensemble de paramètres est défini, une liste déroulante est fournie pour permettre de basculer entre les ensembles.

```powershell
param(
    [Parameter(ParameterSetName = 'Set1')]
    $Parameter1,
    [Parameter(ParameterSetName = 'Set2')]
    $Parameter2
)
```

![Ensembles de paramètres](/files/7gh0yewfL1Q4Y7Gy21gl)


---

# 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/scripts/parameters.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.
