description | ms.custom | ms.date | ms.topic | title |
---|---|---|---|---|
Should Process |
PSSA v1.21.0 |
06/28/2023 |
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
}
}