Guide pratique pour demander des confirmations
Cet exemple montre comment appeler les méthodes System. Management. Automation. cmdlet. ShouldProcess et System. Management. Automation. cmdlet. ShouldContinue pour demander des confirmations à l’utilisateur avant qu’une action soit effectuée.
Important
pour plus d’informations sur la façon dont Windows PowerShell gère ces requêtes, consultez demande de Confirmation.
Pour demander une confirmation
Assurez-vous que le
SupportsShouldProcess
paramètre de l’attribut d’applet de commande a la valeurtrue
. (Pour functions, il s’agit d’un paramètre de l’attribut CmdletBinding.)[Cmdlet(VerbsDiagnostic.Test, "RequestConfirmationTemplate1", SupportsShouldProcess = true, ConfirmImpact = ConfirmImpact.High)]
Notes
L’utilisation
SupportsShouldProcess
de la seule ne garantit pas que l’utilisateur est invité à confirmer l’intervention. Les invites sont déterminées par la valeur de$ConfirmPreference
et l’impact de votre action. UtilisezConfirmImpact
pour définir la gravité de l’impact de votre opération.Ajoutez un
Force
paramètre à votre applet de commande pour permettre à l’utilisateur de remplacer une demande de confirmation.[Parameter()] public SwitchParameter Force { get { return force; } set { force = value; } } private bool force;
Ajoutez une
if
instruction qui utilise la valeur de retour de la méthode System. Management. Automation. cmdlet. ShouldProcess pour déterminer si la méthode System. Management. Automation. cmdlet. ShouldContinue est appelée.Ajoutez une deuxième
if
instruction qui utilise la valeur de retour de la méthode System. Management. Automation. cmdlet. ShouldContinue et la valeur duForce
paramètre pour déterminer si l’opération doit être effectuée.
Exemple
Dans l’exemple de code suivant, les méthodes System. Management. Automation. cmdlet. ShouldProcess et System. Management. Automation. cmdlet. ShouldContinue sont appelées à partir de la substitution de la méthode System. Management. Automation. cmdlet. ProcessRecord . Toutefois, vous pouvez également appeler ces méthodes à partir des autres méthodes de traitement d’entrée.
protected override void ProcessRecord()
{
if (ShouldProcess("ShouldProcess target"))
{
if (Force || ShouldContinue("", ""))
{
// Add code that performs the operation.
}
}
}
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour