重症度レベル:警告
デフォルト状態:常に有効
説明
関数やパラメータで自動変数名を使うのは避けてください。 このルールは、自動変数名を使用する変数やパラメータ名への割り当てを検出します。 PowerShellは内部状態情報を格納する変数を自動的に定義し、それらを自動で管理します。 多くの自動変数を上書き できます が、それを行うとユーザーに予期せぬ影響が出たり、コードの保守やデバッグが難しくなることがあります。
自動変数はPowerShellの内部利用専用に予約し、状態情報の読み取りにのみ依存してください。
詳しくは about_Automatic_Variablesをご覧ください。
Example
非準拠
変数 $Error はグローバルスコープに存在する自動変数であり、したがって変数やパラメータ名として使ってはなりません。
function foo($Error){ }
function Get-CustomErrorMessage($ErrorMessage){ $Error = "Error occurred: $ErrorMessage" }
対応
function Get-CustomErrorMessage($ErrorMessage){ $FinalErrorMessage = "Error occurred: $ErrorMessage" }
ルールの設定
このルールは常に有効で、設定はできません。 このルールを避けるために、以下のいずれかの方法を用いてください。
- 欲しいルールだけを含めるか、不要なルールを除外するカスタムルール設定ファイルを作成しましょう。
- 特定のコードブロックに対してルール抑制を抑制するために、適切なルール抑制属性をコードに追加してください。 詳細については、PSScriptAnalyzerの使用に関する「抑制ルール」セクションをご覧ください。