Почему я не могу получить пользовательскую переменную среды? - PullRequest
0 голосов
/ 06 мая 2019

Я создал переменную среды пользователя testPurpose:

test

Мой скрипт либо не отображает его, если я вызываю его так:

$env:testPurpose

или если я попытаюсь таким образом

$x = "testPurpose"
(get-item env:$x).Value

Я получаю эту ошибку:

get-item: Невозможно найти путь 'Env: \ testPurpose'потому что он не существует.

Используя gci env:* | sort-object name, я ясно вижу, что он был создан наверняка

display envs

Так почему я не могу получить его?Если я попробую это:

$env:ProgramData

Я вернусь, местоположение данных программы напечатано просто отлично!

Так что я уверен, что это не командная проблема

Ответы [ 2 ]

2 голосов
/ 06 мая 2019

Попробуйте перезапустить сеанс PowerShell.

Переменные среды загружаются только в начале сеанса или запускаются в контексте сеанса.

1 голос
/ 06 мая 2019

Возможно, вы создали их в рабочем процессе, которые доступны только для этого сеанса.Они также уходят после того, как вы закроете окно PS.Попробуйте сделать это машинной переменной, которая должна сохраняться.

Примечание: я не уверен, почему вы захотите создать их, а не просто создавать переменные в скрипте, а для каждого свои.

[Environment]::SetEnvironmentVariable("testPurpose", "TESTING", "Machine")
(Get-Item "env:testPurpose").Value
$testPurpose = "testPurpose"
(Get-Item env:$testPurpose).Value
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...