Paramètres WhatIf, Confirm et ValidateOnly

 

S’applique à : Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007

Dernière rubrique modifiée : 2007-06-19

Le Exchange Management Shell est une interface de gestion très puissante et flexible. Vous pouvez administrer votre infrastructure en mode interactif en utilisant la ligne de commande. Vous pouvez créer et exécuter des scripts qui automatisent des tâches souvent utilisées ou complexes. Pendant que vous apprenez comment utiliserExchange Managment Shell lui-même, le script ou tous les deux, vous pouvez vouloir afficher les résultats d'une commande avant que la commande affecte des données. Aussi, vous pouvez vouloir accepter qu'une commande est sur le point d’être exécutée. Cette fonctionnalité est surtout importante lorsque vous opérez une transition de votre environnement de test à votre environnement de production et pendant que vous transférez de nouveaux scripts ou commandes.

Les administrateurs et auteurs de scripts expérimentés, de même que les administrateurs qui débutent avec Exchange et les scripts, peuvent tirer parti de l’utilisation des paramètres WhatIf, Confirm et ValidateOnly. Ces paramètres sont disponibles dans Exchange Management Shell. Les paramètres suivants vous aident à contrôler comment sont exécutées vos commandes et à indiquer exactement ce que fera une commande avant d’affecter les données. Les paramètres WhatIf, Confirm et ValidateOnly sont particulièrement utiles lorsque vous les utilisez avec les commandes qui modifient des objets retournés à l’aide d’un filtre ou d’une commande Get canalisée. Ce chapitre décrit chaque paramètre.

importantImportant :
Si vous voulez utiliser les paramètres WhatIf, Confirm et ValidateOnly avec des commandes dans un script, vous devez ajouter le paramètre approprié à chaque commande dans le script, et non dans la ligne de commande qui appelle le script.

Notes

Les paramètres WhatIf, Confirm et ValidateOnly sont des paramètres booléens. Pour plus d'informations sur le paramètre de commutateurs, consultez la rubrique Paramètres.

Paramètre WhatIf

Le paramètre WhatIf instruit la commande à laquelle il est appliqué pour exécuter, mais aussi pour afficher quels objets seront affectés par l’exécution de la commande et quels changements seront apportés à ces objets. Le domaine ne change vraiment aucun de ces objets. Lorsque vous utilisez le paramètre WhatIf , vous pouvez vous rendre compte si les changements qui seraient apportés à ces objets satisfont vos attentes, sans la préoccupation de modifier ces objets.

Lorsque vous exécutez une commande avec le paramètre WhatIf, vous placez le paramètre WhatIf à la fin de la commande, comme dans l’exemple suivant:

New-AcceptedDomain -Name "Contoso Domain" -DomainName "contoso.com" -WhatIf 

Lorsque vous exécutez cet exemple de commande, le texte suivant est retourné par le Exchange Management Shell:

What if: Creating Accepted Domain "Contoso Domain" with Domain Name "contoso.com".

Pour afficher une liste de cmdlets qui acceptent le paramètre WhatIf , tapez la commande suivante dans le Exchange Management Shell:

Get-ExCommand | Where { $_.Definition -Like "*WhatIf*" }

Paramètre Confirm

Le paramètre Confirm instruit la commande à laquelle il s’applique d’arrêter le traitement avant qu’aucun changement ne soit fait. La commande vous incite ensuite à accepter chaque action avant qu’elle ne continue. Lorsque vous utilisez le paramètre Confirm, vous pouvez échelonner les changements aux objets pour vous assurer que les changements sont faits seulement aux objets spécifiques que vous voulez changer. Cette fonctionnalité est utile lorsque vous appliquez les changements à plusieurs objets et voulez un contrôle précis sur l’opération de Exchange Management Shell. Une boîte de dialogue de confirmation est affichée pour chaque objet avant que le Exchange Management Shell modifie l’objet.

Par défaut, l'environnement de ligne de commande Exchange Management Shell applique automatiquement le paramètre Confirm aux cmdlets qui incluent les verbes suivants :

  • Supprimer

  • Move

  • Stop

  • Effacer

  • Suspend

  • Uninstall

  • Démonter

  • Désactiver

Lorsqu’une cmdlet qui n’a aucun de ces verbes est exécuté, le Exchange Management Shell arrête automatiquement la commande et attend votre acceptation avant de continuer le processus.

Lorsque vous appliquez manuellement le paramètre Confirm à une commande, incluez le paramètre Confirm à la fin de la commande, comme dans l’exemple suivant:

Get-JournalRule | Enable-JournalRule -Confirm

Lorsque vous exécutez cet exemple de commande, la boîte de dialogue suivante est retournée par le Exchange Management Shell:

[Y] Yes   [A] Yes to All   [N] No   [L] No to All   [S] Suspend   [?] Help   
(default is "Y"):

La boîte de dialogue de confirmation fournit les options suivantes:

  • [Y] Oui   Tapez Y pour instruire la commande de continuer l’opération. L’opération suivante présentera une autre boîte de dialogue de confirmation. [Y] Yes est la sélection par défaut.

  • [A] Oui à Tous   Tapez A pour instruire la commande de continuer l’opération et toutes les opérations subséquentes. Vous ne recevrez pas d’autres boîtes de dialogue de confirmation pendant la durée de cette commande.

  • [N] Non   Tapez N pour instruire la commande d’ignorer cette opération et de continuer avec l’opération suivante. L’opération suivante présentera une autre boîte de dialogue de confirmation.

  • [L] Non à Tous   Tapez L pour instruire la commande d’ignorer cette opération et toutes les opérations subséquentes.

  • [S] Suspendre   Tapez S pour suspendre le pipeline en cours et retourner à la ligne de commande. Tapez Exit pour poursuivre le pipeline.

  • [?] Aide   Tapez ? pour afficher la boîte de dialogue de confirmation Aide sur la ligne de commande.

Si vous voulez annuler le comportement par défaut du Exchange Management Shell et supprimer la boîte de dialogue de confirmation pour les cmdlets sur lesquelles elle est automatiquement appliquée, vous pouvez inclure le paramètre Confirm avec une valeur de $False, comme dans l’exemple suivant:

Get-JournalRule | Disable-JournalRule -Confirm:$False

Dans ce cas, aucune boîte de dialogue de confirmation n’est affichée.

CautionAttention :
La valeur par défaut du paramètre Confirm est $True. Le comportement par défaut du Exchange Management Shell affiche automatiquement une boîte de dialogue de confirmation. Si vous supprimez ce comportement par défaut du Exchange Management Shell, vous instruisez la commande de supprimer toutes les boîtes de dialogue pour la durée d’exécution de la commande. La commande traitera tous les objets qui satisfont aux critères pour la commande sans confirmation.

Pour afficher une liste de cmdlets qui acceptent le paramètre Confirm , tapez la commande suivante dans Exchange Management Shell:

Get-ExCommand | Where { $_.Definition -Like "*Confirm*" }

Paramètre ValidateOnly

Le paramètre ValidateOnly donne pour instruction à la commande à laquelle il est appliqué d’évaluer les conditions et exigences nécessaires pour exécuter l’opération avant d’appliquer des modifications. Le paramètre ValidateOnly est disponible pour les cmdlets qui peuvent être longues à exécuter, ont plusieurs dépendances sur plusieurs systèmes ou affectent des données critiques comme les boîtes aux lettres.

Lorsque vous appliquez le paramètre ValidateOnly à une commande, celle-ci exécute le processus entier. La commande exécute chaque action de la même façon que sans le paramètre ValidateOnly. La commande ne modifie cependant aucun objet. Lorsque la commande termine son processus, elle affiche un résumé avec les résultats de la validation. Si la validation indique que la commande a réussi, vous pouvez l'exécuter de nouveau sans le paramètre ValidateOnly.

Lorsque vous exécutez une commande avec le paramètre ValidateOnly, placez le paramètre ValidateOnly à la fin de la commande, comme dans l’exemple suivant :

Get-Mailbox "Kim Akers" | Move-Mailbox -TargetDatabase "Executive Database" -ValidateOnly

Lorsque vous exécutez cet exemple de commande, le texte suivant est retourné par le Exchange Management Shell:

Identity                         : contoso.com/Users/Kim Akers
DistinguishedName                : CN=Kim Akers,CN=Users,DC=contoso,DC=com
DisplayName                      : Kim Akers
Alias                            : kim
LegacyExchangeDN                 : /o=First Organization/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=kim
PrimarySmtpAddress               : kim@contoso.com
SourceServer                     : Win2003MS.contoso.com
SourceDatabase                   : WIN2003MS\First Storage Group\Mailbox Database
SourceGlobalCatalog              : Win2003MS.contoso.com
TargetGlobalCatalog              : Win2003MS.contoso.com
TargetDomainController           : Win2003MS.contoso.com
TargetMailbox                    :
TargetServer                     : Win2003MS.contoso.com
TargetDatabase                   : WIN2003MS\Second Storage Group\Executive Database
MailboxSize                      : 0KB
IsResourceMailbox                : False
SIDUsedInMatch                   :
SMTPProxies                      :
SourceManager                    :
SourceDirectReports              :
SourcePublicDelegates            :
SourcePublicDelegatesBL          :
MatchedTargetNTAccountDN         :
IsMatchedNTAccountMailboxEnabled :
MatchedContactsDNList            :
TargetNTAccountDNToCreate        :
TargetManager                    :
TargetDirectReports              :
TargetPublicDelegates            :
TargetPublicDelegatesBL          :
Options                          : Default
SourceForestCredential           :
TargetForestCredential           :
TargetFolder                     :
RsgMailboxGuid                   :
RsgMailboxLegacyExchangeDN       :
RsgMailboxDisplayName            :
RsgDatabaseGuid                  :
MoveType                         : IntraOrg
MoveStage                        : Validation
StartTime                        : 7/17/2006 4:39:13 PM
EndTime                          : 7/17/2006 4:39:14 PM
StatusCode                       : 0
StatusMessage                    : This mailbox can be moved to the target database.

Pour afficher la liste des cmdlets qui acceptent le paramètre ValidateOnly, tapez la commande suivante dans l'environnement de ligne de commande Exchange Management Shell :

Get-ExCommand | Where { $_.Definition -Like "*ValidateOnly*" }