description | ms.custom | ms.date | ms.topic | title |
---|---|---|---|---|
Should Process |
PSSA v1.20.0 |
03/24/2022 |
reference |
ShouldProcess |
Severity Level: Warning
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:
- about_Functions_Advanced_Methods
- about_Functions_CmdletBindingAttribute
- Everything you wanted to know about ShouldProcess
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
function Set-File
{
[CmdletBinding(SupportsShouldProcess=$true)]
Param
(
# Path to file
[Parameter(Mandatory=$true)]
$Path
)
"String" | Out-File -FilePath $Path
}
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
}
}