С https://technet.microsoft.com/en-us/library/hh847849.aspx
Элемент, который вы создали в области действия, можно изменить только в той области, в которой он был создан, если вы явно не укажете другую область.
так что вы можете использовать $Global:x = ...
чтобы установить его.
Сценарии Powershell часто копируются и вставляются в блоки для реализации функциональности, и часто методы пишутся для использования несколькими сценариями. Ограничивая присвоение определяющей области действия для переменной, вы гарантируете, что даже если два вставленных блока кода используют одно и то же имя переменной, они не смогут неправильно изменить данные, от которых зависит другой блок, без явного указания, что они хотят это сделать. Это помогает сделать блоки более модульными и помогает выявить непреднамеренные конфликты имен.
Редактировать:
примечание о области действия powershell: Powershell каскадирует области, поэтому локальная область всегда содержит объекты, определенные в областях предков (parent, grantparent, global и т. д.). Это означает, что переменная, определенная глобально или в рамке родительского стека (функция, вызывающая функцию), всегда доступна, тогда как объекты, определенные в дочерних областях, не доступны. В этом случае единственным ограничением является то, что дочерняя область не может изменять значение родительской области, если эта область не определена явно.
От: https://technet.microsoft.com/en-us/library/hh847849.aspx
Ниже приведены основные правила области видимости:
- An item you include in a scope is visible in the scope in which it
was created and in any child scope, unless you explicitly make it
private. You can place variables, aliases, functions, or Windows
PowerShell drives in one or more scopes.
- An item that you created within a scope can be changed only in the
scope in which it was created, unless you explicitly specify a
different scope.
If you create an item in a scope, and the item shares its name with an
item in a different scope, the original item might be hidden under the
new item. But, it is not overridden or changed.