ShouldProcess

Nível de gravidade: aviso

Description

Essa regra detecta incompatibilidades entre SupportsShouldProcess declarações e ShouldProcess chamadas. Quando um cmdlet declara o SupportsShouldProcess atributo, ele também deve chamar o ShouldProcess método.

Violações ocorrem quando:

  • Uma função declara SupportsShouldProcess , mas não chama ShouldProcess
  • Uma função chama ShouldProcess , mas não declara SupportsShouldProcess

Para corrigir essa violação, certifique-se de que ShouldProcess as chamadas sejam pareadas com a SupportsShouldProcess declaração de atributo.

Para obter mais informações, consulte os seguintes artigos:

Example

Não Conforme

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

Em conformidade

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
    }
}