【问题标题】:how to use Get-ChildItem to search sub keys including current key如何使用 Get-ChildItem 搜索子键,包括当前键
【发布时间】:2017-04-25 21:59:29
【问题描述】:

如何使用 Get-ChildItem 在注册表中搜索子键,包括我的 $path 的当前键?我正在搜索特定字符串的数据列/值的一部分。我当前的代码有效,但在搜索中不包括我的路径字符串的当前键或最后一个键。

我在我的 HKCU 注册表中设置了带有附加子键的 ABC 键。每个都包含值和数据。搜索开始的 $Path 是 'HKEY_CURRENT_USER\ABC'

HKCU\ABC 包含值及其数据
HKCU\ABC\DEF 包含值及其数据
HKCU\ABC\DEF\GHI 包含值及其数据

我的功能代码(或其中的一部分)如下所示

$objProps = @()

    $Key = Get-ChildItem -Path Registry::$Path -Recurse
    ForEach ($SubKey in $Key) { 
      #$Key = Get-ItemProperty -Path Registry::$CurRegistryKey
      ForEach ($Prop in $SubKey.Property) {
          if (($SubKey.GetValue($Prop)) -match $ValueDataRegex) {  
            $objProps += @{ 
                Key = $SubKey
                ValueName = $Prop
                ValueData = $SubKey.GetValue($Prop)
            } 
          } 
        }
    } 

    return $objProps

它只返回 DEF 和 GHI 的结果。我还希望它搜索 ABC 键中的数据。如果我使用 'HKEY_CURRENT_USER\' 作为我的 $Path,它可以工作,但需要很长时间,因为它会搜索不必要的注册表项。

【问题讨论】:

  • 您使用的是哪个版本的 PowerShell?
  • 嗨,马蒂亚斯。感谢您的回复。版本 5.1.14393.1066 但为了向后兼容可能会回到版本 4 和/或什至 3。

标签: powershell


【解决方案1】:

在迭代结果之前再调用一次Get-ChildItem

$Key = @(Get-ChildItem -Path Registry::$Path -Recurse)
$Key += Get-Item Registry::$Path

【讨论】:

  • 好的,谢谢@Mathias-r-Jessen。我认为可能有一个 cmdlet 或参数来包含当前密钥。估计一个都没有:-)
猜你喜欢
  • 2023-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-19
  • 2020-12-12
  • 1970-01-01
  • 2021-06-17
  • 1970-01-01
相关资源
最近更新 更多