PowerShell: получить необработанное значение переменной среды 'tmp' - PullRequest
3 голосов
/ 05 января 2011
$env:tmp

[Environment]::GetEnvironmentVariable('tmp', 'User')

(get-item hkcu:\Environment).GetValue('tmp')

Все приведенные выше фрагменты PowerShell возвращают значение C:\Users\Roman\AppData\Local\Temp. Я знаю, что значение должно быть %USERPROFILE%\AppData\Local\Temp (это я вижу в regedit и в окне переменных среды).

Мне нужно знать «оригинальное», но не «разрешенное» значение. Как я могу прочитать это значение в PowerShell?

Спасибо.

1 Ответ

5 голосов
/ 05 января 2011

Наконец, я нашел решение, которое работает для меня:

(get-item hkcu:\Environment).GetValue('tmp', $null, 'DoNotExpandEnvironmentNames')

Я обнаружил эту перегрузку GetValue после написания следующего кода PowerShell / C #:

$reg = [Microsoft.Win32.Registry]::CurrentUser.OpenSubKey("Environment", $true);
$val = $reg.GetValue('tmp', $null, [Microsoft.Win32.RegistryValueOptions]::DoNotExpandEnvironmentNames)
$val
$reg.Close()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...