Como solicitar confirmações
Este exemplo mostra como chamar os métodos System. Management. Automation. cmdlet. ShouldProcess e System. Management. Automation. cmdlet. ShouldContinue para solicitar confirmações do usuário antes que uma ação seja executada.
Importante
para obter mais informações sobre como Windows PowerShell manipula essas solicitações, consulte solicitando confirmação.
Para solicitar confirmação
Verifique se o
SupportsShouldProcess
parâmetro do atributo cmdlet está definido comotrue
. (Para funções, esse é um parâmetro do atributo CmdletBinding.)[Cmdlet(VerbsDiagnostic.Test, "RequestConfirmationTemplate1", SupportsShouldProcess = true, ConfirmImpact = ConfirmImpact.High)]
Observação
Usar
SupportsShouldProcess
sozinho não garante que a confirmação do usuário seja solicitada. A solicitação é determinada pelo valor de$ConfirmPreference
e pelo impacto da ação. UseConfirmImpact
para definir a severidade do impacto de sua operação.Adicione um
Force
parâmetro ao cmdlet para que o usuário possa substituir uma solicitação de confirmação.[Parameter()] public SwitchParameter Force { get { return force; } set { force = value; } } private bool force;
Adicione uma
if
instrução que usa o valor de retorno do método System. Management. Automation. cmdlet. ShouldProcess para determinar se o método System. Management. Automation. cmdlet. ShouldContinue é chamado.Adicione uma segunda
if
instrução que usa o valor de retorno do método System. Management. Automation. cmdlet. ShouldContinue e o valor doForce
parâmetro para determinar se a operação deve ser executada.
Exemplo
No exemplo de código a seguir, os métodos System. Management. Automation. cmdlet. ShouldProcess e System. Management. Automation. cmdlet. ShouldContinue são chamados de dentro da substituição do método System. Management. Automation. cmdlet. ProcessRecord . No entanto, você também pode chamar esses métodos de outros métodos de processamento de entrada.
protected override void ProcessRecord()
{
if (ShouldProcess("ShouldProcess target"))
{
if (Force || ShouldContinue("", ""))
{
// Add code that performs the operation.
}
}
}