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

# Paramètres

Générer automatiquement des formulaires de saisie de tâche PowerShell Universal à partir des blocs param de script, avec prise en charge de types comme DateTime, PSCredential, File et ValidateSet.

## Paramètres

Les tâches prennent en charge la génération automatique de formulaires avec paramètres en fonction du bloc `param` de votre script. Le type de contrôle change selon le type que vous définissez dans le bloc. Les paramètres obligatoires seront également requis par l'interface utilisateur.

### Paramètres de base

Les paramètres peuvent être simplement définis sans aucun type d'attribut de paramètre et ils s'afficheront sous forme de zones de texte dans l'interface utilisateur.

```powershell
param($Test)

$Test
```

### Types de paramètres

Universal prend en charge divers 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 du tout. Les chaînes génèrent une zone de texte.

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

#### 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 multi-étiquettes.

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

#### 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)
```

#### Boolean

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

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

#### Integer

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

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

#### Paramètre de type Switch

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

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

#### Énumérations

Vous pouvez utiliser des valeurs System.Enum pour créer des zones de sélection. Par exemple, vous pourriez utiliser `System.DayOrWeek` pour créer une zone de sélection du jour de la semaine.

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

#### PSCredential

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

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

#### File

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

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

Les fichiers seront disponibles sous forme d'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 du fichier sous forme de chaîne en le convertissant à l'aide des classes Encoding.

```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 du script.

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

### 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
)
```

### Paramètres obligatoires

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

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

$RequiredParameter
```

### Valeur par défaut

Vous pouvez utiliser 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 quelles valeurs peuvent être passées à un paramètre. Apprenez-en 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
)
```

## Passer des paramètres depuis PowerShell

Vous pouvez passer des paramètres depuis PowerShell en utilisant l'applet de commande `Invoke-PSUScript`. Cette applet de commande prend en charge les paramètres dynamiques. Si votre script comporte un bloc `param`, ces paramètres seront automatiquement ajoutés à `Invoke-PSUScript`.

Par exemple, j'avais un script nommé Script1.ps1 dont le contenu était le suivant.

```powershell
param($MyParameter)

$MyParameter
```

Je pourrais ensuite invoquer ce script en utilisant cette syntaxe.

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

Le résultat serait que Hello est affiché 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 passer d'un ensemble à l'autre.

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


---

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