使用通配符查找注册表项并将其删除的脚本

时间:2021-06-08 16:26:35

标签: powershell

我正在尝试清除导致我们的漏洞扫描程序异常的旧 Firefox 注册表项。

我使用的脚本是:

New-PSDrive HKU Registry HKEY_USERS
Get-ItemProperty -Path "HKU:\*\Software\Mozilla\Mozilla Firefox*" |
  Select-Object -ExpandProperty PSPath |
  ForEach-Object {Remove-PsPath -Path $_ -WhatIf}

但它失败了。我知道我的问题在最后一部分:ForEach-Object {Remove-PsPath -Path $_ -WhatIf} 因为我可以运行脚本的另一部分并获得预期的数据返回。

我要删除的注册表中的键位于 HKU\%%%randoms SID%%%\Software\Mozilla 路径中。它们是:

HKU\%%%randoms SID%%%\Software\Mozilla\Mozilla Firefox
HKU\%%%randoms SID%%%\Software\Mozilla\Mozilla Firefox ESR

我希望脚本删除整个密钥和所有子密钥。我的脚本做错了什么?

1 个答案:

答案 0 :(得分:0)

Remove-PsPath 不存在,据我所知。但这一切都可以简化为:

New-PSDrive HKU Registry HKEY_USERS
Remove-Item "HKU:\*\Software\Mozilla\*Firefox*" -Recurse -WhatIf

当然,一旦您确定要运行它,请删除 -WhatIf

另请注意,我在 Firefox 之前添加了一个额外的通配符,因为我在我的测试机器上注意到注册表项被简单地称为 Firefox 而不是 Mozilla Firefox 。这仍将针对您的原始注册表项。