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
Stellen Sie
SupportsShouldProcess
sicher, dass der Parameter des Cmdlet-Attributs auf festgelegttrue
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. VerwendenConfirmImpact
Sie , um den Schweregrad der Auswirkungen Ihres Vorgangs zu festlegen.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;
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.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 derForce
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
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für