重大度レベル: 情報
Description
このルールは、名前付きパラメータではなく3つ以上の位置パラメータでコマンドを呼び出す場合を検出します。 位置パラメータを使用するとコードの可読性が低下し、エラーを生じさせる可能性があります。 将来のコマンドレットのバージョンが、パラメータ位置に依存している既存のスクリプトを壊すような変更になる可能性があります。
位置パラメータが少ない単純なコマンドレットでは、リスクははるかに小さいです。 このルールがノイズが多すぎないように、3つ以上のパラメータを指定しないでください。 位置パラメータの使用リスクが無視できる単純な例は Test-Path $Pathです。
コマンドを呼ぶときはパラメータ名をフルに使ってください。
例
非準拠
Get-Command ChildItem Microsoft.PowerShell.Management
対応
Get-Command -Noun ChildItem -Module Microsoft.PowerShell.Management
ルールの設定
Rules = @{
PSAvoidUsingPositionalParameters = @{
CommandAllowList = 'Join-Path', 'MyCmdletOrScript'
Enable = $true
}
}
Parameters
コマンドロイリスト
このパラメータは、このルールから除外するコマンドやスクリプトを指定します。 文字列配列を受け入れます。 既定値は @() です。
Enable
このパラメータは、ScriptAnalyzerがこのルールに対してコードをチェックするかどうかを制御します。 ブール値も受け入れます。 このルールを無効にするには、このパラメータを $falseに設定してください。 既定値は $true です。