AvoidAssignmentToAutomaticVariable

Nivel de gravedad: Advertencia

Descripción

Esta regla detecta asignaciones a variables automáticas y nombres de parámetros que usan nombres automáticos de variables. PowerShell define automáticamente variables que almacenan información interna de estado y las gestiona por sí mismo. Aunque puedes anular muchas variables automáticas, hacerlo puede tener efectos inesperados para los usuarios y dificultar el mantenimiento y depuración de tu código.

Evita usar nombres automáticos de variables en tus funciones y parámetros. Reserva las variables automáticas solo para el uso interno de PowerShell y confía en ellas solo para leer información de estado.

Para saber más, consulta about_Automatic_Variables.

Cómo

Utiliza nombres de variables en funciones o sus parámetros que no entren en conflicto con variables automáticas.

Example

No conforme

La variable $Error es una variable automática que existe en el ámbito global y, por tanto, nunca debe usarse como nombre de variable o parámetro.

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

Compliant

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