2011-01-04 4 views
3
$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: Получить 'tmp' среда переменная необработанное значение

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

Спасибо.

ответ

5

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

(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() 
Смежные вопросы