Anfordern von Bestätigungen

In diesem Beispiel wird gezeigt, wie sie die Methoden System.Management.Automation.Cmdlet.ShouldProcess und System.Management.Automation.Cmdlet.ShouldContinue aufrufen, um Bestätigungen vom Benutzer an fordern, bevor eine Aktion ausgeführt wird.

Wichtig

Weitere Informationen dazu, wie Windows PowerShell diese Anforderungen verarbeitet, finden Sie unter Anfordern der Bestätigung.

So fordern Sie eine Bestätigung an

  1. Stellen Sie SupportsShouldProcess sicher, dass der Parameter des Cmdlet-Attributs auf festgelegt true ist. (Bei Funktionen ist dies ein Parameter des CmdletBinding-Attributs.)

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

    Hinweis

    Die SupportsShouldProcess Verwendung von allein garantiert nicht, dass der Benutzer zur Bestätigung aufgefordert wird. Die Eingabeaufforderung wird durch den Wert $ConfirmPreference von und die Auswirkungen Ihrer Aktion bestimmt. Verwenden ConfirmImpact Sie , um den Schweregrad der Auswirkungen Ihres Vorgangs zu festlegen.

  2. Fügen Sie Force Ihrem Cmdlet einen Parameter hinzu, damit der Benutzer eine Bestätigungsanforderung überschreiben kann.

    [Parameter()]
    public SwitchParameter Force
    {
      get { return force; }
      set { force = value; }
    }
    private bool force;
    
  3. Fügen Sie eine -Anweisung hinzu, die den Rückgabewert der if System.Management.Automation.Cmdlet.ShouldProcess-Methode verwendet, um zu bestimmen, ob die System.Management.Automation.Cmdlet.ShouldContinue-Methode aufgerufen wird.

  4. Fügen Sie eine zweite Anweisung hinzu, die den Rückgabewert der if System.Management.Automation.Cmdlet.ShouldContinue-Methode und den Wert des -Parameters verwendet, um zu bestimmen, ob der Force Vorgang ausgeführt werden soll.

Beispiel

Im folgenden Codebeispiel werden die Methoden System.Management.Automation.Cmdlet.ShouldProcess und System.Management.Automation.Cmdlet.ShouldContinue innerhalb der Überschreibung der System.Management.Automation.Cmdlet.ProcessRecord-Methode aufgerufen. Sie können diese Methoden jedoch auch von den anderen Eingabeverarbeitungsmethoden aufrufen.

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

Weitere Informationen

Schreiben eines Windows PowerShell-Cmdlets