Bevestigingen aanvragen

In dit voorbeeld ziet u hoe u de methoden System.Management.Automation.Cmdlet.ShouldProcess en System.Management.Automation.Cmdlet.ShouldContinue aanroept om bevestigingen van de gebruiker aan te vragen voordat een actie wordt uitgevoerd.

Belangrijk

Zie Bevestiging aanvragen voor Windows PowerShell informatie over hoe deze aanvragen worden verwerkt.

Bevestiging aanvragen

  1. Zorg ervoor dat SupportsShouldProcess de parameter van het kenmerk Cmdlet is ingesteld op true . (Voor functies is dit een parameter van het kenmerk CmdletBinding.)

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

    Notitie

    Het SupportsShouldProcess gebruik van alleen biedt geen garantie dat de gebruiker om bevestiging wordt gevraagd. Vragen wordt bepaald door de waarde van $ConfirmPreference en de impact van uw actie. Gebruik ConfirmImpact om de ernst van de impact van uw bewerking in te stellen.

  2. Voeg een Force parameter toe aan uw cmdlet, zodat de gebruiker een bevestigingsaanvraag kan overschrijven.

    [Parameter()]
    public SwitchParameter Force
    {
      get { return force; }
      set { force = value; }
    }
    private bool force;
    
  3. Voeg een instructie toe die gebruikmaakt van de retourwaarde van de methode if System.Management.Automation.Cmdlet.ShouldProcess om te bepalen of de methode System.Management.Automation.Cmdlet.ShouldContinue wordt aangeroepen.

  4. Voeg een tweede instructie toe die gebruikmaakt van de retourwaarde van de methode if System.Management.Automation.Cmdlet.ShouldContinue en de waarde van de parameter om te bepalen of de bewerking moet worden Force uitgevoerd.

Voorbeeld

In het volgende codevoorbeeld worden de methoden System.Management.Automation.Cmdlet.ShouldProcess en System.Management.Automation.Cmdlet.ShouldContinue aangeroepen vanuit de overschrijvingen van de methode System.Management.Automation.Cmdlet.ProcessRecord. U kunt deze methoden echter ook aanroepen vanuit de andere invoerverwerkingsmethoden.

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

Zie ook

Een Windows PowerShell-cmdlet schrijven