在系统属性>环境变量>用户变量> PATH中包含:
%USERPROFILE%\Downloads\SysinternalsSuite;%USERPROFILE%\bin
可以使用以下方法检索该值:
PS C:\src\t> (Get-ItemProperty -Path HKCU:\Environment).PATH
C:\Users\lit\Downloads\SysinternalsSuite;C:\Users\lit\bin
有什么方法可以在不进行变量扩展的情况下获取原始值?似乎Get-ItemProperty
需要切换-Raw
。
答案 0 :(得分:0)
PetSerAl曾多次在简短的问题评论中提供了有效的解决方案。
实际上,PowerShell的 Get-ItemProperty
/ Get-ItemPropertyValue
cmdlet当前(Windows PowerShell v5.1 / PowerShell Core 6.1.0-preview.4)缺少以下功能:检索REG_EXPAND_SZ
注册表值的原始值,表示该值存储在注册表中之前嵌入式环境变量引用(例如{{ 1}})进行扩展(内插)。
因此需要直接使用.NET API:
%USERPROFILE%
请参见[Microsoft.Win32.RegistryKey].GetValue()
。
注意:(Get-Item -Path HKCU:\Environment).GetValue(
'PATH', # the registry-value name
$null, # the default value to return if no such value exists.
'DoNotExpandEnvironmentNames' # the option that suppresses expansion
)
由PowerShell自动转换为'DoNotExpandEnvironmentNames'
;您也可以使用后者。