重大度レベル: 警告
デフォルト状態:常に有効
形容
このルールは関数やコマンドレットの WhatIf および Confirm パラメータの手動宣言を検出します。
これらのパラメータを手動で宣言するのではなく、 CmdletBinding 属性を SupportsShouldProcess で名前付き引数として使うべきです。
このアプローチは、両方のパラメータと組み込み機能を自動的に提供し、あなたとユーザーの両方に一貫したインタラクティブな体験を提供します。
SupportsShouldProcessを使う方が保守しやすく、追加コードなしで標準的な動作を提供します。
例
非準拠
function foo {
param(
$param1,
$Confirm,
$WhatIf
)
}
対応
function foo {
[CmdletBinding(SupportsShouldProcess)]
param(
$param1
)
}
ルールの設定
このルールは常に有効で、設定はできません。 このルールを避けるために、以下のいずれかの方法を用いてください。
- 欲しいルールだけを含めるか、不要なルールを除外するカスタムルール設定ファイルを作成しましょう。
- 特定のコードブロックに対してルール抑制を抑制するために、適切なルール抑制属性をコードに追加してください。 詳細については、PSScriptAnalyzerの使用に関する「抑制ルール」セクションをご覧ください。