Syntaxe de l’applet de commande Exchange

Les articles de référence des cmdlets Exchange utilisent une méthode standardisée qui décrit les aspects clés des cmdlets. Par exemple :

  • Paramètres disponibles dans les cmdlets.
  • Valeurs acceptées par chaque paramètre.
  • Paramètres qui peuvent être utilisés ensemble et ceux qui doivent être utilisés séparément.

Cet article explique ces conventions et la syntaxe nécessaire pour exécuter les commandes dans Exchange PowerShell.

Conventions des commandes dans Exchange PowerShell

Exchange PowerShell permet de respecter les conventions indiquant les éléments obligatoires et facultatifs, et comment entrer les paramètres et les valeurs lorsque vous exécutez une commande. Les conventions de commandes sont répertoriées dans le tableau suivant.

Symbole Description
- Un tiret indique un paramètre. Par exemple : -Identity.
< > Des chevrons indiquent les valeurs possibles pour un paramètre. Par exemple, -Location <ServerName> ou -Enabled <$true | $false>.
[ ] Des crochets indiquent des paramètres facultatifs et leurs valeurs. Par exemple : [-WhatIf] ou [-ResultSize <Unlimited>].

Les paires paramètre-valeur qui ne sont pas mises entre crochets sont obligatoires. Par exemple, -Password <SecureString>.

Les crochets autour du nom du paramètre lui-même indiquent un paramètre positionnel (vous pouvez utiliser la valeur du paramètre sans spécifier le nom du paramètre), et les paramètres positionnels peuvent être requis ou facultatifs.

Par exemple, Get-Mailbox [[-Identity] <MailboxIdParameter>] signifie qu’Identité est un paramètre de position (car il est mis entre crochets) et facultatif (car la paire valeur-paramètre complète est mise entre crochets). Vous pouvez donc utiliser Get-Mailbox -Identity <MailboxIdParameter> ou Get-Mailbox <MailboxIdParameter>. De même, Set-Mailbox [-Identity] <MailboxIdParameter> signifie que le paramètre Identity est positionnel (car il est placé entre crochets) et obligatoire (car toute la paire paramètre-valeur n’est pas placée entre crochets), vous pouvez donc utiliser Set-Mailbox -Identity <MailboxIdParameter> ou Set-Mailbox <MailboxIdParameter>.
| Les barres verticales dans les valeurs de paramètre indiquent un choix entre des valeurs. Par exemple, -Enabled <$true | $false> indique que le paramètre Enabled peut avoir la valeur $true ou $false.

Ces conventions de commandes permettent de comprendre la manière dont une commande est construite. À l’exception du trait d’union qui indique un paramètre, vous n’utilisez pas ces symboles, car ils sont décrits dans le tableau lorsque vous exécutez des applets de commande dans Exchange PowerShell.

Jeux de paramètres dans Exchange PowerShell

Les jeux de paramètres sont des groupes de paramètres pouvant être utilisés ensemble dans la même commande. Chaque jeu de paramètres contient au moins un paramètre qui n’est pas disponible dans les autres jeux de paramètres, mais les jeux de paramètres partagent généralement certains paramètres.s.

De nombreuses applets de commande n’ont qu’un seul jeu de paramètres, ce qui signifie que tous les paramètres peuvent être utilisés les uns avec les autres. D’autres applets de commande ont plusieurs jeux de paramètres, ce qui signifie que certains paramètres ne peuvent pas être utilisés avec d’autres paramètres. Par exemple, supposons que les jeux de paramètres suivants sont disponibles pour la cmdlet New-SystemMessage:

New-SystemMessage -DsnCode <EnhancedStatusCode> -Internal <Boolean> -Language <CultureInfo> -Text <String> [-Confirm] [-DomainController <Fqdn>] [-WhatIf] <CommonParameters>

New-SystemMessage -QuotaMessageType <QuotaMessageType> -Language <CultureInfo> -Text <String> [-Confirm] [-DomainController <Fqdn>] [-WhatIf] <CommonParameters>

Les paramètres suivants étant disponibles dans le premier jeu de paramètres, vous pouvez les utiliser dans la même commande :

  • DsnCode
  • Interne
  • Language
  • Text
  • Confirmer
  • /DomainController:
  • WhatIf

Les paramètres suivants étant disponibles dans le deuxième ensemble de paramètres, vous pouvez les utiliser dans la même commande :

  • QuotaMessageType
  • Language
  • Text
  • Confirmer
  • /DomainController:
  • WhatIf

Les paramètres DsnCode et Internal sont disponibles uniquement dans le premier ensemble de paramètres. Le paramètre QuotaMessageType est disponible uniquement dans le deuxième ensemble de paramètres. Par conséquent, vous ne pouvez pas utiliser les paramètres suivants dans la même commande :

  • DsnCode et QuotaMessageType.
  • Interne et QuotaMessageType.

Les paramètres suivants étant disponibles dans les deux jeux de paramètres, vous pouvez les utiliser dans n’importe quelle commande New-SystemMessage :

  • Language
  • Text
  • Confirmer
  • /DomainController:
  • WhatIf

L’entrée <CommonParameters> indique que l’applet de commande prend en charge les paramètres Windows PowerShell de base disponibles sur pratiquement n’importe quelle applet de commande (par exemple, Verbose). Vous pouvez utiliser les paramètres courants avec les paramètres de n’importe quel jeu de paramètres. Pour plus d’informations, consultez about_CommonParameters.

Guillemets dans Exchange PowerShell

Dans Exchange PowerShell, vous utilisez des apostrophes (') ou des guillemets (") autour des valeurs de paramètres qui contiennent des espaces. Par exemple, les commandes suivantes ont le même comportement :

  • Get-ReceiveConnector -Identity "Contoso Receive Connector"

  • Get-ReceiveConnector -Identity 'Contoso Receive Connector'

Dans les exemples précédents, si vous ne placez pas la valeur entre guillemets Contoso simples ou doubles, la commande échoue car PowerShell traite chaque mot comme un nouvel argument (il pense qu’il s’agit de la valeur du paramètre Identity et Receive de la valeur d’un paramètre positionnel non spécifié). Dans cet exemple, l’erreur ressemble à ceci :

Un paramètre de position acceptant l’argument « Recevoir » ne peut pas être trouvé.

Pour les valeurs de texte brut, les guillemets simples et les guillemets doubles n’ont pas vraiment d’importance. Toutefois, le choix est important lorsque des variables sont impliquées :

  • Guillemets doubles : les variables sont remplacées par leurs valeurs réelles.
  • Apostrophes : Les variables sont traitées littéralement.

Par exemple, $Server = Mailbox01 génère la sortie suivante en fonction des guillemets que vous utilisez :

  • « $Server Exemple » aboutit à Mailbox01 Example.
  • « $Server Exemple » entraîne la valeur $Server Example.

Pour plus d’informations sur les variables, voir about_Variables et about_Automatic_Variables.

Caractères d’échappement dans Exchange PowerShell

Dans n’importe quel langage de programmation, un caractère d’échappement sert à identifier les caractères spéciaux littéralement et non selon leur fonction normale dans ce langage. Dans Exchange PowerShell, lorsque vous placez une chaîne de texte entre guillemets, le caractère d'échappement est l'accent grave ( ` ).

Par exemple, si vous souhaitez obtenir la sortie The price is $23, entrez la valeur « Le prix est de 23 $ ». Le caractère d’échappement est obligatoire, car le signe dollar ($) définit les variables dans PowerShell.

Si vous placez la chaîne entre apostrophes, le seul caractère spécial dont vous avez besoin est l’apostrophe elle-même, ce qui nécessite de la doubler pour échapper ( '' ).

Par exemple, si vous voulez l’entrée Don't confuse two single quotation marks with a double quotation mark!, entrez la valeur « Ne pas confondre les guillemets simples avec un guillemet double ! ».

Opérateurs de commande dans Exchange PowerShell

Le tableau suivant présente les opérateurs valides que vous pouvez utiliser dans une commande Exchange. Certains de ces symboles ont été également décrits plus haut, dans la section Conventions des commandes dans Exchange PowerShell. Toutefois, ces symboles ont des significations différentes lorsqu’ils sont utilisés comme opérateurs dans la ligne de commande. Par exemple, le signe moins utilisé pour signaler un paramètre peut également servir d’opérateur mathématique dans une commande.

Opérateur Description
= Le signe égal est un caractère d’affectation. La valeur située à droite du signe égal est affectée à la variable à gauche du signe égal (par exemple, $x= Get-Mailbox). Vous pouvez également utiliser d’autres caractères avec le signe égal :
  • += : Ajoutez la valeur à droite du signe Égal à la valeur actuelle contenue dans la variable à gauche du signe Égal.
  • -= : Soustrayez la valeur à droite du signe Égal de la valeur actuelle contenue dans la variable à gauche du signe Égal.
  • *= : Multipliez la valeur actuelle de la variable à gauche du signe Égal par la valeur à droite du signe Égal.
  • /= : Divisez la valeur actuelle de la variable à gauche du signe Égal par la valeur à droite du signe Égal.
  • %= : Remplacez la valeur actuelle de la variable à gauche du signe Égal par la valeur à droite du signe Égal.
: Utilisez un signe deux-points pour séparer le nom d’un paramètre de la valeur du paramètre. Par exemple : -Enabled:$True. Un séparateur deux-points fonctionne et est facultatif sur pratiquement toutes les paires paramètre-valeur. Un séparateur deux-points est requis sur les paramètres du commutateur. Pour plus d’informations sur les paramètres de commutateur, voir about_Parameters.
! Le point d’exclamation est l’opérateur NOT logique. La paire != combinée signifie « différent de ».
[ ] Les crochets spécifient la valeur d’index d’une position de tableau. Les valeurs d’index sont des décalages qui commencent toujours à zéro. Par exemple, dans le tableau nommé $Red, la valeur de la dixième position dans le tableau est $Red[9].

Les crochets peuvent également affecter un type à une variable. Par exemple, pour identifier la variable nommée $A XML, utilisez $A=[XML] "<Test><A>value</A></Test>". Les types de variables suivants sont disponibles : Array, Bool, CharByte, Char[], Decimal, Double, Float, IntRegExLongInt[]SingleScriptBlockLong[], , String, Type, etXML.
{ } Utilisez des accolades pour inclure une expression dans une commande. Par exemple, Get-Process | Where {$_.HandleCount -gt 400}
| Utilisez le symbole de canal pour diriger la sortie d’une commande vers une autre commande. Par exemple : Get-Mailbox -Server SRV1 | Set-Mailbox -ProhibitSendQuota 2GB.
> Utilisez le crochet à angle droit pour envoyer la sortie d’une commande à un fichier. Si le fichier existe déjà, le contenu est remplacé. Par exemple : Get-TransportRule > "C:\My Documents\TransportRules.txt".
>> Utilisez deux crochets à angle droit pour ajouter la sortie d’une commande à un fichier existant. Si le fichier n’existe pas, il est créé. Par exemple : Get-TransportRule >> "C:\My Documents\TransportRules.txt".
" Utilisez des guillemets doubles pour placer des chaînes de texte contenant des espaces. Comme décrit précédemment, les variables sont remplacées par leurs valeurs réelles.
$ Le signe dollar indique une variable. Par exemple, pour créer une variable nommée $Blue avec la valeur 10, utilisez $Blue = 10. Après avoir stocker la variable, vous pouvez l’utiliser comme valeur d’un paramètre.
@ Le symbole at fait référence à un tableau associatif. Pour plus d’informations sur les tableaux, consultez about_Arrays.
$( ) Un signe dollar entre parenthèses indique une substitution de commande. Un signe dollar ( ) entre parenthèses indique une substitution de commande. Une substitution de commande vous permet d'utiliser la sortie d'une commande comme argument dans une autre commande. Par exemple, Get-ChildItem $(Read-Host -Prompt "Enter FileName: ").
.. Les points doubles indiquent une plage de valeurs. Par exemple, si un tableau contient plusieurs index, vous pouvez retourner les valeurs de tous les index entre les deuxième et cinquième index en exécutant la commande : $Blue[2..5].
+ L'opérateur du signe plus additionne deux valeurs. Par exemple, 6 + 6 est égal à 12.
- L’opérateur du signe moins soustrait une valeur d’une autre (par exemple, 12 - 6 est égal à 6) ou indique un nombre négatif (par exemple, -6 * 6 est égal à -36).
* Vous pouvez utiliser un astérisque pour :
  • Chaînes correspondantes : par exemple, Get-User | Where-Object {$_.Department -like 'Sales*'})
  • Plusieurs valeurs numériques : par exemple, 6 * 6 est égal à 36
  • Répéter la valeur de chaîne un certain nombre de fois : par exemple, "Test" * 3 est égal à TestTestTest.
/ Une barre oblique divise une valeur par une autre. Par exemple, 6 / 6 est égal à 1.
% Le signe pourcentage comporte les utilisations suivantes :
  • Dans une évaluation numérique, il renvoie le reste d'un opérateur de division. Par exemple, 6 % 4 est égal à 2.
  • Dans un pipeline, il s’agit du raccourci pour la cmdlet ForEach-Object. Par exemple, Import-Csv C:\MyFile.csv | ForEach-Object {Set-Mailbox $_.Identity -Name $_.Name} est identique à Import-Csv C:\MyFile.csv | % {Set-Mailbox $_.Identity -Name $_.Name}.
? Le caractère point d’interrogation est le raccourci de la cmdletWhere-Object. Par exemple, Get-Alias | Where-Object {$_.Definition -eq "Clear-Host"} est identique à Get-Alias | ? {$_.Definition -eq "Clear-Host"}.