AvoidGlobalVars

Severity Level: Warning

Description

A variable is a unit of memory in which values are stored. PowerShell controls access to variables, functions, aliases, and drives through a mechanism known as scoping. Variables and functions that are present when PowerShell starts have been created in the global scope.

Globally scoped variables include:

  • Automatic variables
  • Preference variables
  • Variables, aliases, and functions that are in your PowerShell profiles

To understand more about scoping, see Get-Help about_Scopes.

How

Use other scope modifiers for variables.

Example

Wrong

$Global:var1 = $null
function Test-NotGlobal ($var)
{
    $a = $var + $var1
}

Correct

$var1 = $null
function Test-NotGlobal ($var1, $var2)
{
    $a = $var1 + $var2
}