Powershell 读取StringExpand类型的注册表值 2


当你去读取一个类型为StringExpand类型的注册表值时,它总是会在你的文本中自动展开所有的环境变量。

这里有个简单的例子从注册表获取系统磁盘路径:

$path = 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion'
$key = Get-ItemProperty -Path $path 
$key.DevicePath  
#输出结果:C:\Windows\inf;C:\Windows\DRV

这个结果一定是一个实际路径,OK,除非你想获得它的最初形态(未展开的)注册表值,请使用这个例子。

$path = 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion'

$key = Get-Item -Path $path 

$key.GetValue('DevicePath', '', 'DoNotExpandEnvironmentNames')

#输出结果:%SystemRoot%\inf;%SystemRoot%\DRV

通过这种方式访问注册表你将可以获得其它信息:你现在也可以获得值得类型:

$path = 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion'

$key = Get-Item -Path $path 

$key.GetValueKind('DevicePath')

#输出结果:ExpandString

原文地址:Reading StringExpand Registry Values

本文链接: https://www.pstips.net/reading-stringexpand-registry-values.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

2 条评论 “Powershell 读取StringExpand类型的注册表值