Skip to content

Latest commit

 

History

History
75 lines (61 loc) · 1.98 KB

ShouldProcess.md

File metadata and controls

75 lines (61 loc) · 1.98 KB
description ms.custom ms.date ms.topic title
Should Process
PSSA v1.21.0
06/28/2023
reference
ShouldProcess

ShouldProcess

Severity Level: Warning

Description

If a cmdlet declares the SupportsShouldProcess attribute, then it should also call ShouldProcess. A violation is any function which either declares SupportsShouldProcess attribute but makes no calls to ShouldProcess or it calls ShouldProcess but does not declare SupportsShouldProcess.

For more information, see the following articles:

How

To fix a violation of this rule, please call ShouldProcess method when a cmdlet declares SupportsShouldProcess attribute. Or please add SupportsShouldProcess attribute argument when calling ShouldProcess.

Example

Wrong

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

Correct

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