PowerShell:获取'tmp'环境变量原始值

Rom*_*man 3 powershell environment-variables

$env:tmp

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

(get-item hkcu:\Environment).GetValue('tmp')
Run Code Online (Sandbox Code Playgroud)

以上所有PowerShell代码段都会返回C:\Users\Roman\AppData\Local\Temp值.我知道值应该是%USERPROFILE%\AppData\Local\Temp(我可以在regedit和Environment Variables窗口中看到).

我需要知道'原创',但不是'已解决'的价值.如何在PowerShell中读取此值?

谢谢.

Rom*_*man 5

最后,我找到了一个适合我的解决方案:

(get-item hkcu:\Environment).GetValue('tmp', $null, 'DoNotExpandEnvironmentNames')
Run Code Online (Sandbox Code Playgroud)

在编写以下PowerShell/C#代码后,我发现了这个GetValue重载:

$reg = [Microsoft.Win32.Registry]::CurrentUser.OpenSubKey("Environment", $true);
$val = $reg.GetValue('tmp', $null, [Microsoft.Win32.RegistryValueOptions]::DoNotExpandEnvironmentNames)
$val
$reg.Close()
Run Code Online (Sandbox Code Playgroud)