在Reg中搜索单词并删除



早上好!

在powershell脚本中寻找一些帮助来搜索单词并删除值(而不是键(。不,这并不可疑,我们有几台安装了WebNavigatorBrowser的计算机(每个用户不需要管理(。我找不到静默卸载,所以我正在尝试自动执行脏卸载。我做了一些搜索和测试,但没有用

到目前为止,我有这个:

$Key = 'HKCU:SOFTWAREEvan'
Get-ChildItem $Key -Include *Web* -Recurse | Remove-Item -Force

但它删除了键而不是值。我需要同时做这两件事,因为密钥可能会说其他的东西,但价值就是它。

谢谢你的帮助!

如果我理解正确,那么您需要像以前一样获得ItemProperty,但不要使用Remove-Item,而是使用Remove-ItemProperty,如下所示。

$Key = 'HKCU:SOFTWAREEvan'
Get-ChildItem $Key -Include *web* -Recurse |
Get-ItemProperty | Remove-ItemProperty -Name {$_.pschildname} -WhatIf

如果您想限制找到的内容,也可以在Get-ItemProperty中添加-Include,尽管在这种情况下似乎不需要这样做。

$Key = 'HKCU:SOFTWAREtest'
Get-ChildItem $Key -Include *web* -Recurse |
Get-ItemProperty -Include *web* | Remove-ItemProperty -Name {$_.pschildname} -WhatIf

这两种方法都应该有效。只需在确认-WhatIf将完全符合您的要求后将其移除即可。

编辑

根据我们在评论中的对话,我认为这可能会达到预期的效果。至少应该更近一点。

Get-ChildItem $key -Recurse | foreach {
if($_.name -match "WebNavigatorBrowser")
{
Remove-Item $_.pspath -Recurse -WhatIf
}
else
{
Get-ItemProperty $_.pspath |
Where-Object {$_ -match "WebNavigatorBrowser"} |
ForEach-Object {remove-item $_.pspath -Recurse -WhatIf}
}
}

最新更新