通过Powershell对象递归

时间:2018-08-12 14:05:13

标签: powershell

我正在尝试浏览从命令中收到的结果,问题是当我访问属性时,我仅获得属性名称而不是相应的路径。

enter image description here

  

$ com1 = Get-ChildItem   'HKLM:\ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Uninstall *'| ? {$ _   -match“ Firefox”}

Command i tried to recurse:
$prop = $com1 | Select-Object  'Property' # Select only item property

然后我得到的结果没有任何属性值的映射。

我在下面粘贴的结果

Property                                        
--------                                               
{Comments, DisplayIcon, DisplayName, DisplayVersion...}

我希望在我第一次进入图像时能够获得评论和displayicon的价值。

2 个答案:

答案 0 :(得分:4)

使用Get-ItemProperty从注册表项中获取实际的属性值:

$PropertyValue = ($com1 | Get-ItemProperty -Name "property").property

答案 1 :(得分:0)

补充Mathias R. Jessen's helpful answer

PSv5 + 中,您可以使用Get-ItemPropertyValue cmdlet,该cmdlet通过直接检索数据(属性值)来简化事务:

$PropertyValue = $com1 | Get-ItemPropertyValue -Name Property

或者,假设$com1似乎是与Get-Item一起从registry-provider位置检索的,因此是类型[Microsoft.Win32.RegistryKey]的实例,您可以直接调用其.GetValue() method

$com1.GetValue('Property')