Comment confirmer l'invite dans PowerShell
-
Utiliser le commutateur
-Confirm
pour l’invite de confirmation dans PowerShell -
Utiliser l’instruction
if
pour l’invite de confirmation dans PowerShell -
Utiliser la méthode
PromptForChoice()
pour l’invite de confirmation dans PowerShell - Utiliser des approches basées sur des fonctions pour l’invite de confirmation dans PowerShell
- Conclusion

L’idée générale derrière l’invite de confirmation est de créer une option pour passer d’une action à une autre. Par exemple, lorsque l’utilisateur choisit Oui
, le script doit continuer, et lorsque l’utilisateur sélectionne Non
, le script doit être quitté.
PowerShell peut automatiquement demander confirmation à l’utilisateur avant d’effectuer une action en utilisant le commutateur -Confirm
. Ce tutoriel présentera différentes méthodes pour demander confirmation aux utilisateurs afin de procéder à une action dans PowerShell.
Utiliser le commutateur -Confirm
pour l’invite de confirmation dans PowerShell
PowerShell dispose d’un ensemble de variables de préférence qui affectent son environnement d’exploitation et vous permettent de personnaliser son comportement. $ConfirmPreference
est l’une des variables de préférence qui détermine si PowerShell vous demande automatiquement confirmation avant d’exécuter un cmdlet ou une fonction.
Cela aide à demander confirmation avant d’exécuter des cmdlets ou des fonctions présentant un risque faible, moyen ou élevé. Comme la plupart des cmdlets et des fonctions sont de risque moyen, cela ne demande pas confirmation si la valeur de la variable est définie sur High
.
$ConfirmPreference
Sortie :
High
Vous devez utiliser le commutateur -Confirm
avec la commande pour demander confirmation à l’utilisateur. Cela force la commande à afficher l’invite de confirmation dans PowerShell.
Une manière plus simple d’utiliser le commutateur -Confirm
serait de l’utiliser dans le cmdlet Remove-Item
, qui peut produire une action de confirmation dans une commande plus simple. La commande suivante montre un exemple de son utilisation.
Commande :
Remove-Item test.txt -Confirm
Sortie :
Confirm
Are you sure you want to perform this action?
Performing the operation "Remove File" on target "C:\Users\rhntm\test.txt".
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"): N
Dans la sortie, le commutateur -Confirm
force PowerShell à afficher une invite de confirmation. Cette méthode est directe et idéale pour les scénarios où vous souhaitez demander à l’utilisateur une simple confirmation 'Oui'
ou 'Non'
.
Dans l’interface graphique de PowerShell, cela ressemblera à ceci.
Utiliser l’instruction if
pour l’invite de confirmation dans PowerShell
Vous pouvez également utiliser l’instruction if
et fournir les conditions pour continuer pour les utilisateurs. Par exemple, la commande suivante demande à l’utilisateur confirmation s’il souhaite continuer.
Commande :
$confirmation = Read-Host "Do you want to continue?"
if ($confirmation -eq 'y') {
Write-Host "Welcome to DelftStack."
}
Sortie :
Do you want to continue?: y
Welcome to DelftStack.
Le cmdlet Read-Host
est utilisé pour lire l’entrée d’un utilisateur et stocker l’entrée dans la variable $confirmation
. L’instruction if
vérifie si l’entrée de l’utilisateur ($confirmation
) est égale à 'y'
, et si c’est vrai, elle exécute l’action spécifiée.
Cette approche offre des options supplémentaires pour personnaliser le message affiché à l’utilisateur et ce qui se passe lorsqu’il fait un choix.
Utiliser la méthode PromptForChoice()
pour l’invite de confirmation dans PowerShell
Dans PowerShell, vous pouvez également demander aux utilisateurs une confirmation en utilisant la méthode PromptForChoice()
. Elle affiche une boîte de dialogue qui permet à l’utilisateur de sélectionner une option parmi un ensemble d’options et de procéder à l’action selon ses choix.
La commande suivante est un exemple qui demande une entrée Oui/Non
à un utilisateur. Nous définissons le $title
, la $question
et les $choices
pour l’invite de confirmation.
Commande :
$title = 'Confirm'
$question = 'Do you want to continue?'
$choices = '&Yes', '&No'
$decision = $Host.UI.PromptForChoice($title, $question, $choices, 1)
if ($decision -eq 0) {
Write-Host 'Your choice is Yes.'
}
else {
Write-Host 'Your choice is No.'
}
Cette ligne de code $decision = $Host.UI.PromptForChoice($title, $question, $choices, 1)
présente une boîte de dialogue à l’utilisateur en utilisant la méthode PromptForChoice()
. Dans l’instruction if
, elle vérifie si la valeur stockée dans la variable $decision
est égale à 0
(l’index du premier choix dans le tableau $choices
).
1ère Sortie :
Confirm
Do you want to continue?
[Y] Yes [N] No [?] Help (default is "N"): Yes
Your choice is Yes.
Dans la 1ère sortie, l’utilisateur sélectionne "Oui"
. En conséquence, la sortie "Votre choix est Oui."
est affichée.
2ème Sortie :
Confirm
Do you want to continue?
[Y] Yes [N] No [?] Help (default is "N"): No
Your choice is No.
Dans la 2ème sortie, l’utilisateur sélectionne "Non"
, et la seconde commande à l’intérieur des parenthèses sera exécutée. Par conséquent, "Votre choix est Non."
est affiché.
Cette méthode offre une expérience de confirmation plus interactive et personnalisable, ce qui la rend adaptée aux scénarios complexes.
Si vous exécutez le script ci-dessus dans la version GUI de PowerShell, vous pouvez voir la boîte de dialogue de confirmation.
Utiliser des approches basées sur des fonctions pour l’invite de confirmation dans PowerShell
Vous pouvez créer des fonctions PowerShell personnalisées qui incluent la logique de confirmation. Cela vous permet d’encapsuler la logique de confirmation dans des fonctions et de les réutiliser dans vos scripts.
Commande :
Function Confirm-Action {
param (
[string]$Message,
[scriptblock]$Action
)
$confirmation = Read-Host $Message
if ($confirmation -eq 'y') {
& $Action
}
}
Confirm-Action -Message "Do you want to continue?" -Action {
Write-Host "Action executed."
}
La ligne Function Confirm-Action { ... }
définit une fonction PowerShell nommée Confirm-Action
. La fonction prend deux paramètres : $Message
et $Action
.
Cette ligne, $confirmation = Read-Host $Message
, demande à l’utilisateur de fournir une entrée à l’aide du cmdlet Read-Host
et stocke l’entrée dans la variable $confirmation
. Le paramètre $Message
précise le message affiché à l’utilisateur.
L’instruction if
vérifie si l’entrée de l’utilisateur stockée dans $confirmation
est égale au caractère 'y'
.
Sortie :
Do you want to continue?: y
Action executed.
Lorsque vous exécutez la commande, elle demande à l’utilisateur une confirmation ("Voulez-vous continuer?"
) et exécute l’action avec le message "Action Exécutée"
si l’utilisateur choisit 'y'
.
Conclusion
Dans PowerShell, les invites de confirmation sont essentielles pour le contrôle et la sécurité de l’utilisateur. Dans cet article, nous avons exploré quatre méthodes pour mettre en œuvre des invites de confirmation ; le commutateur -Confirm
simplifie les invites de base 'Oui/Non'
, l’instruction if
avec Read-Host
permet la personnalisation, la méthode PromptForChoice()
fournit des options interactives avancées, et l’utilisation d’approches basées sur des fonctions pour créer une fonction personnalisée qui inclut la logique de confirmation, garantissant des interactions utilisateur efficaces et sécurisées dans les scripts.
Nous espérons que ce tutoriel vous aide à comprendre comment demander aux utilisateurs une confirmation 'Oui/Non'
dans PowerShell.