繁体   English   中英

使用 Powershell 查找并显示注册表空键

[英]Find and display registry empty keys with Powershell

如何使用 Powershell 查找并显示 Windows 注册表空键?

知道GetChild-Item可以使用HKLM:\HKCU:\搜索注册表。

我试过了

Get-ChildItem "HKLM:\" -Recurse | 
    Where Property -like '' | foreach {
    $_.GetValue("DisplayName")
}

但不起作用。

对于空键,我的意思是只有默认值并且没有子键的键。

然后使用>导出到文本文件,分析结果并删除不需要的内容。

因此,您正在寻找没有子项和属性的注册表项——默认值除外。 因为当您使用Get-ChildItem时提供了这两个属性,所以您只需过滤它们:

Get-ChildItem -Path 'REGISTRY::HKEY_LOCAL_MACHINE', 'REGISTRY::HKEY_CURRENT_USER' -Recurse -ErrorAction SilentlyContinue |
    Where-Object {
        -not $_.SubKeyCount -and
        -not $_.Property
    } | 
        Select-object -Property PSPath

在不需要的情况下从注册表中删除密钥仍然是一个坏主意。

使用-ExpandProperty修改了 @Olaf 解决方案以处理长注册表路径,并且Name在注册表路径之前没有前缀

Get-ChildItem -Path 'HKCU:', 'HKLM:' -r -ea si |
    Where-Object {
        -not $_.SubKeyCount -and
        -not $_.Property
    } | 
        Select-object -ExpandProperty Name > list_empty.txt

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM