重症度レベル:警告
デフォルト状態:常に有効
Description
このルールはShouldContinueパラメータを持たずにを使う関数を検出します。
ShouldContinueを使う関数には、確認プロンプトを回避できるブールForceパラメータが必要です。
高度な関数で ShouldContinue を使用する場合は、 ShouldProcess メソッドが $trueを返した後に呼び出してください。
詳しくは「 about_Functions_CmdletBindingAttribute 」と 「about_Functions_Advanced_Methods」をご覧ください。
例
非準拠
Function Test-ShouldContinue
{
[CmdletBinding(SupportsShouldProcess=$true)]
Param
(
$MyString = 'blah'
)
if ($PsCmdlet.ShouldContinue('ShouldContinue Query', 'ShouldContinue Caption'))
{
...
}
}
対応
Function Test-ShouldContinue
{
[CmdletBinding(SupportsShouldProcess=$true)]
Param
(
$MyString = 'blah',
[Switch]$Force
)
if ($Force -or $PsCmdlet.ShouldContinue('ShouldContinue Query', 'ShouldContinue Caption'))
{
...
}
}
ルールの設定
このルールは常に有効で、設定はできません。 このルールを避けるために、以下のいずれかの方法を用いてください。
- 欲しいルールだけを含めるか、不要なルールを除外するカスタムルール設定ファイルを作成しましょう。
- 特定のコードブロックに対してルール抑制を抑制するために、適切なルール抑制属性をコードに追加してください。 詳細については、PSScriptAnalyzerの使用に関する「抑制ルール」セクションをご覧ください。