Begära bekräftelser

Det här exemplet visar hur du anropar metoderna System.Management.Automation.Cmdlet.ShouldProcess och System.Management.Automation.Cmdlet.ShouldContinue för att begära bekräftelser från användaren innan en åtgärd vidtas.

Viktigt

Mer information om hur du Windows PowerShell dessa begäranden finns i Begära bekräftelse.

Så här begär du bekräftelse

  1. Kontrollera att SupportsShouldProcess parametern för cmdlet-attributet är inställd på true . (För funktioner är detta en parameter för attributet CmdletBinding.)

    [Cmdlet(VerbsDiagnostic.Test, "RequestConfirmationTemplate1",
            SupportsShouldProcess = true, ConfirmImpact = ConfirmImpact.High)]
    

    Anteckning

    Enbart SupportsShouldProcess användning garanterar inte att användaren uppmanas att bekräfta. Uppmaningen bestäms av värdet av $ConfirmPreference och effekten av åtgärden. Använd ConfirmImpact för att ange allvarlighetsgraden för effekten av åtgärden.

  2. Lägg till Force en parameter i cmdleten så att användaren kan åsidosätta en bekräftelsebegäran.

    [Parameter()]
    public SwitchParameter Force
    {
      get { return force; }
      set { force = value; }
    }
    private bool force;
    
  3. Lägg till en -instruktion som använder returvärdet för metoden if System.Management.Automation.Cmdlet.ShouldProcess för att avgöra om metoden System.Management.Automation.Cmdlet.ShouldContinue anropas.

  4. Lägg till en andra -instruktion som använder returvärdet för metoden if System.Management.Automation.Cmdlet.ShouldContinue och värdet för parametern för att avgöra om åtgärden Force ska utföras.

Exempel

I följande kodexempel anropas metoderna System.Management.Automation.Cmdlet.ShouldProcess och System.Management.Automation.Cmdlet.ShouldContinue inifrån åsidosättningen av metoden System.Management.Automation.Cmdlet.ProcessRecord. Du kan dock även anropa dessa metoder från de andra indatabearbetningsmetoderna.

protected override void ProcessRecord()
{
  if (ShouldProcess("ShouldProcess target"))
  {
    if (Force || ShouldContinue("", ""))
    {
      // Add code that performs the operation.
    }
  }
}

Se även

Skriva en Windows PowerShell-cmdlet