UseSupportsShouldProcess

严重性级别:警告

默认状态:始终启用

描述

该规则检测函数和指令重组中参数的手动声明WhatIfConfirm。 与其手动声明这些参数,不如用 CmdletBinding 属性 作为 SupportsShouldProcess 命名参数。

这种方法会自动提供这两个参数以及内置功能,让你和你的用户都能获得一致的互动体验。 使用 SupportsShouldProcess 更易维护,且提供标准行为且无需额外代码。

非符合性

function foo {
    param(
        $param1,
        $Confirm,
        $WhatIf
    )
}

合规的

function foo {
    [CmdletBinding(SupportsShouldProcess)]
    param(
        $param1
    )
}

配置规则

这个规则始终是启用的,不能配置。 请采用以下方法之一以避免使用此规则:

  • 创建一个自定义规则配置文件,只包含你想要的规则,或者排除你不想要的规则。
  • 在代码中添加相应的规则抑制属性,以抑制特定代码块的规则。 更多信息请参见使用 PSScriptAnalyzer 中的“抑制规则”部分。