UseSupportsShouldProcess

重大度レベル: 警告

デフォルト状態:常に有効

形容

このルールは関数やコマンドレットの WhatIf および Confirm パラメータの手動宣言を検出します。 これらのパラメータを手動で宣言するのではなく、 CmdletBinding 属性を SupportsShouldProcess で名前付き引数として使うべきです。

このアプローチは、両方のパラメータと組み込み機能を自動的に提供し、あなたとユーザーの両方に一貫したインタラクティブな体験を提供します。 SupportsShouldProcessを使う方が保守しやすく、追加コードなしで標準的な動作を提供します。

例

非準拠

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

対応

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

ルールの設定

このルールは常に有効で、設定はできません。 このルールを避けるために、以下のいずれかの方法を用いてください。

  • 欲しいルールだけを含めるか、不要なルールを除外するカスタムルール設定ファイルを作成しましょう。
  • 特定のコードブロックに対してルール抑制を抑制するために、適切なルール抑制属性をコードに追加してください。 詳細については、PSScriptAnalyzerの使用に関する「抑制ルール」セクションをご覧ください。