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

  1. Verifique se o SupportsShouldProcess parâmetro do atributo cmdlet está definido como true . (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. Use ConfirmImpact para definir a severidade do impacto de sua operação.

  2. 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;
    
  3. 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.

  4. Adicione uma segunda if instrução que usa o valor de retorno do método System. Management. Automation. cmdlet. ShouldContinue e o valor do Force 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.
    }
  }
}

Consulte Também

Escrevendo um Cmdlet do Windows PowerShell