AvoidDefaultValueForMandatoryParameter

重症度レベル:警告

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

説明

このルールは、必須パラメータにデフォルトが割り当てられているかどうかを検出します。 必須パラメータはデフォルト値であってはいけません。なぜなら使えないからです。 パラメータが必須とマークされている場合、PowerShellは関数呼び出し時に値が提供されていなければ必ずユーザーに値を求めます。 必須パラメータに割り当てられたデフォルト値は到達不可能であり、目的を持ちません。

Example

非準拠

function Test
{

    [CmdletBinding()]
    Param
    (
        [Parameter(Mandatory=$true)]
        $Parameter1 = 'default Value'
    )
}

対応

function Test
{
    [CmdletBinding()]
    Param
    (
        [Parameter(Mandatory=$true)]
        $Parameter1
    )
}

ルールの設定

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

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