description | ms.date | ms.topic | title |
---|---|---|---|
Changing automatic variables might have undesired side effects |
06/28/2023 |
reference |
AvoidAssignmentToAutomaticVariable |
Severity Level: Warning
PowerShell has built-in variables known as automatic variables. Many of them are read-only and PowerShell throws an error when trying to assign an value on those. Other automatic variables should only be assigned in certain special cases to achieve a certain effect as a special technique.
To understand more about automatic variables, see Get-Help about_Automatic_Variables
.
Use variable names in functions or their parameters that do not conflict with automatic variables.
The variable $Error
is an automatic variables that exists in the global scope and should therefore
never be used as a variable or parameter name.
function foo($Error){ }
function Get-CustomErrorMessage($ErrorMessage){ $Error = "Error occurred: $ErrorMessage" }
function Get-CustomErrorMessage($ErrorMessage){ $FinalErrorMessage = "Error occurred: $ErrorMessage" }