Syntaxe de cmdlet 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 -Activé <$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>.

Si le nom du paramètre lui-même est mis entre crochets, cela indique que le paramètre est un paramètre de position (vous pouvez utiliser la valeur du paramètres sans spécifier le paramètre). Les paramètres de position peuvent être obligatoires 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 la même manière, Set-Mailbox [-Identity] <MailboxIdParameter> signifie qu’Identité est un paramètre de position (car il est mis entre crochets) et obligatoire (car la paire valeur-paramètre complète n’est pas mise 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, -Activé <$true | $false> indique que le paramètre Activé 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 les symboles tels qu'ils sont décrits dans le tableau lorsque vous exécutez des cmdlets 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. Bien que les jeux de paramètres partagent généralement des paramètres, chaque jeu de paramètres contient au moins un paramètre non disponible dans d’autres jeux de paramètres et ne peut pas être utilisé avec certains paramètres dans différents jeux de paramètres.

Beaucoup de cmdlets n'ont qu'un seul jeu de paramètres, ce qui signifie que tous les paramètres disponibles peuvent être utilisés ensemble. D'autres cmdlets ont plusieurs jeux de paramètres ; dans ce cas, certains paramètres exécutent des fonctions incompatibles 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] <COMMON PARAMETERS>

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

Cette cmdlet a deux jeux de paramètres distincts. En fonction des entrées, vous pouvez également utiliser ces paramètres ensemble dans la même commande :

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

Et vous pouvez également utiliser ces paramètres ensemble dans la même commande :

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

Mais vous ne pouvez pas utiliser ces paramètres ensemble dans la même commande :

  • DsnCode et QuotaMessageType.
  • Interne et QuotaMessageType.

L’entrée <COMMON PARAMETERS> indique que la cmdlet prend en charge les paramètres Windows PowerShell de base qui sont disponibles sur des cmdlet virtuelles (par exemple, Déboguer). 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'

Si vous ne placez pas la valeur Contoso Receive Connector entre guillemets, Exchange PowerShell tente de traiter chaque mot comme un nouvel argument, et la commande échoue. Dans cet exemple, vous recevrez une erreur de ce type :

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

Si la valeur contient des variables, vous devez choisir attentivement entre apostrophes et guillemets. Par exemple, prenons une variable nommée $Server qui a la valeur Mailbox01.

  • Guillemets : Les variables sont remplacées par les valeurs correspondantes. Par exemple, si la variable $Server a la valeur Mailbox01, l’entrée "$Server Example" entraîne une sortie Mailbox01 Example.

  • Apostrophes : Les variables sont traitées littéralement. L’entrée '$Server Example' entraîne la sortie $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 `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 utilisé comme caractère d’affectation. La valeur à droite du signe Égal est affectée à la variable à gauche du signe Égal. Les caractères ci-après sont également des caractères d’affectation :
  • += : 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.
: Deux points peuvent être utilisés pour séparer le nom et la valeur d’un paramètre. Par exemple, -Enabled:$True. L’utilisation des deux points est facultative pour tous les types de paramètre, excepté pour les paramètres de commutateur. Pour plus d’informations sur les paramètres de commutateur, voir about_Parameters.
! Le point d’exclamation est un opérateur logique NOT. Lorsqu’il est utilisé avec le signe Égal ( = ), la paire combinée (!=) signifie «est différent de.»
[ ] Les crochets servent à spécifier la valeur index d’une position dans un tableau. Les valeurs d’index sont des décalages qui commencent à zéro. Par exemple, $Red[9] fait référence à la dixième position d’index du tableau, $Red.

Les crochets peuvent également être utilisés pour affecter un type à une variable (comme dans l'exemple suivant : $A=[XML] "<Test><A>value</A></Test>"). Les types de variables suivants sont disponibles : Array, Bool, Byte, Char, Char[], Decimal, Double, Float, Int, Int[], Long, Long[], RegEx, Single, ScriptBlock, String, Type et XML.

{ } Les accolades servent à inclure une expression dans une commande. Par exemple, Get-Process | Où {$_.HandleCount -gt 400}
| Le symbole de canalisation est utilisé quand une cmdlet canalise un résultat vers une autre cmdlet. Par exemple, Get-Mailbox -Server SRV1 | Set-Mailbox -ProhibitSendQuota 2GB.
> Le chevron vers la droite sert à envoyer la sortie d'une commande vers un fichier, et le contenu du fichier est remplacé. Par exemple, Get-TransportRulePredicate > "C:\My Documents\Output.txt".
>> Les chevrons doubles vers la droite permettent d'ajouter la sortie d'une commande à un fichier existant. Si le fichier n'existe pas, il est créé. Par exemple, Get-TransportRulePredicate >> "C:\My Documents\Output.txt".
" Les guillemets permettent d’entourer une chaîne contenant des espaces.
$ Un signe dollar indique une variable. Par exemple, $Blue = 10 affecte la valeur 10 à la variable $Blue.
@ Le symbole @ 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 renvoyer les valeurs de tous les index situés entre les deuxième et cinquième index à l’aide de la commande suivante : $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 cmdlet Where-Object. Par exemple, Get-Alias | Where-Object {$_.Definition -eq "Clear-Host"} est identique à Get-Alias | ? {$_.Definition -eq "Clear-Host"}.