AvoidAssignmentToAutomaticVariable

Niveau de gravité : Avertissement

Description

Cette règle détecte les affectations de variables automatiques et de noms de paramètres utilisant des noms automatiques de variables. PowerShell définit automatiquement des variables qui stockent les informations d’état internes et les gère de manière autonome. Même si vous pouvez contourner de nombreuses variables automatiques, cela peut avoir des effets inattendus pour les utilisateurs et rendre votre code plus difficile à maintenir et à déboguer.

Évitez d’utiliser des noms automatiques de variables dans vos fonctions et paramètres. Réservez les variables automatiques uniquement à l’usage interne de PowerShell, et ne comptez que sur elles pour lire les informations d’état.

Pour en savoir plus, consultez about_Automatic_Variables.

Comment

Utilisez les noms des variables dans les fonctions ou leurs paramètres qui ne sont pas en conflit avec les variables automatiques.

Example

Non conforme

La variable $Error est une variable automatique qui existe dans le champ global et ne devrait donc jamais être utilisée comme variable ou nom de paramètre.

function foo($Error){ }
function Get-CustomErrorMessage($ErrorMessage){ $Error = "Error occurred: $ErrorMessage" }

Compliant

function Get-CustomErrorMessage($ErrorMessage){ $FinalErrorMessage = "Error occurred: $ErrorMessage" }