Cómo solicitar confirmaciones
En este ejemplo se muestra cómo llamar a los métodos System.Management.Automation.Cmdlet.ShouldProcess y System.Management.Automation.Cmdlet.ShouldContinue para solicitar confirmaciones al usuario antes de realizar una acción.
Importante
Para obtener más información sobre cómo Windows PowerShell estas solicitudes, vea Solicitar confirmación.
Para solicitar confirmación
Asegúrese de que
SupportsShouldProcess
el parámetro del atributo Cmdlet está establecido entrue
. (Para las funciones, se trata de un parámetro del atributo CmdletBinding).[Cmdlet(VerbsDiagnostic.Test, "RequestConfirmationTemplate1", SupportsShouldProcess = true, ConfirmImpact = ConfirmImpact.High)]
Nota
El
SupportsShouldProcess
uso de por sí solo no garantiza que se pida confirmación al usuario. La solicitud viene determinada por el valor de$ConfirmPreference
y el impacto de la acción. UseConfirmImpact
para establecer la gravedad del impacto de la operación.Agregue un
Force
parámetro al cmdlet para que el usuario pueda invalidar una solicitud de confirmación.[Parameter()] public SwitchParameter Force { get { return force; } set { force = value; } } private bool force;
Agregue una instrucción que use el valor devuelto del método
if
System.Management.Automation.Cmdlet.ShouldProcess para determinar si se llama al método System.Management.Automation.Cmdlet.ShouldContinue.Agregue una segunda instrucción que use el valor devuelto del método
if
System.Management.Automation.Cmdlet.ShouldContinue y el valor del parámetro para determinar si se debe realizarForce
la operación.
Ejemplo
En el ejemplo de código siguiente, se llama a los métodos System.Management.Automation.Cmdlet.ShouldProcess y System.Management.Automation.Cmdlet.ShouldContinue desde la invalidación del método System.Management.Automation.Cmdlet.ProcessRecord. Sin embargo, también puede llamar a estos métodos desde los otros métodos de procesamiento de entrada.
protected override void ProcessRecord()
{
if (ShouldProcess("ShouldProcess target"))
{
if (Force || ShouldContinue("", ""))
{
// Add code that performs the operation.
}
}
}
Vea también
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de