Skip to content

Latest commit

 

History

History
78 lines (64 loc) · 2 KB

File metadata and controls

78 lines (64 loc) · 2 KB
description Should Process
ms.date 06/28/2023
ms.topic reference
title 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
    }
}