[英]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.