Compartir a través de


ShouldProcess

Nivel de gravedad: advertencia

Descripción

Si un cmdlet declara el SupportsShouldProcess atributo , también debe llamar a ShouldProcess. Una infracción es cualquier función que declara el SupportsShouldProcess atributo pero no realiza ninguna llamada a o llama ShouldProcess a ShouldProcess , pero no declara SupportsShouldProcess.

Para más información, consulte los siguientes artículos.

Cómo

Para corregir una infracción de esta regla, llame al ShouldProcess método cuando un cmdlet declare el SupportsShouldProcess atributo . O bien, agregue SupportsShouldProcess el argumento de atributo al llamar a ShouldProcess.

Ejemplo

Incorrecto

function Set-File
{
    [CmdletBinding(SupportsShouldProcess=$true)]
    Param
    (
        # Path to file
        [Parameter(Mandatory=$true)]
        $Path
    )
    'String' | Out-File -FilePath $Path
}

Correcto

function Set-File
{
    [CmdletBinding(SupportsShouldProcess=$true)]
    Param
    (
        # Path to file
        [Parameter(Mandatory=$true)]
        $Path,

        [Parameter(Mandatory=$true)]
        [string]$Content
    )

    if ($PSCmdlet.ShouldProcess($Path, ("Setting content to '{0}'" -f $Content)))
    {
        $Content | Out-File -FilePath $Path
    }
    else
    {
        # Code that should be processed if doing a WhatIf operation
        # Must NOT change anything outside of the function / script
    }
}