使用Powershell删除ShellIconOverlayIdentifiers on Windows

0

的问题

目前我非常恼火箱和Nextcloud,这两个战斗ShellIconOverlayIdentifier名单。 一个问题,其中许多人似乎有,当你搜索互联网。

现在我想把我的烦扰我的意学习powershell(7.2.0).

我开始有以下脚本,其中应检索所有的钥匙。 后来我想通过使用regex -match 要找到该项我希望删除。 现在我的工作有两个 Remove-Item -WhatIfGet-ItemProperty 来测试它。

目前我的问题是,我可以建立我的名单。 但是,当我饲料列入删除的命令我得到的路径不被发现。 我做错了什么?

Push-Location -Path Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers

$list = Get-ChildItem -Path .

$filteredList = $list -match "DropboxExt10"

$filteredList

# Remove-Item -WhatIf -Recurse $filteredList
Get-ItemProperty $filteredList

Pop-Location

错误是 Cannot find path 'Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\ DropboxExt10' because it does not exist. 显然它增加了在路径相对路径向目前的位置。 为什么不解释作为一个绝对的道路? 当我ommit推位置的一部分,它改掉添加登记册的路径以我目前的工作目录在脚本生活。 但这是错误的。

感谢您的帮助。

powershell registry windows
2021-11-16 19:48:52
1

最好的答案

1

使用下列之一:

$filteredList | Remove-Item -WhatIf -Recurse

# Alternatively:
Remove-Item -LiteralPath $filteredList.PSPath -WhatIf -Recurse

上述命令,确保登记的项目(键)受他们 充分,提供合格的路径Remove-Item's -LiteralPath 参数,通过他们的 .PSPath 财产;在的情况下 注册的路径,该路径的供应商的前缀 Microsoft.PowerShell.Core\Registry:: (或者,如果确定的起始 模块 是不是也需要, Registry::作为你的 Push-Location 呼叫)

什么似乎是发生的事情是,当项 -这是什么发生在你把它们 作为一个整体, 作为一个参数 (例如 Remove-Item $filteredlist,这是一样的 Remove-Item -Path $filteredlist),他们 缺乏供应商的前缀 表示,作为 注册地的路.

并给予充分的注册表当地的路径,例如 HKEY_LOCAL_MACHINE\... 既没有开始与一个 驱动器的规范 ,也没有与 \/它解释为一个 相对 路径,导致在的症状你看到的。

2021-11-16 21:21:42

谢谢你的详尽解释说明。 这两种变体工作。 实际上我想出了一个第三方案。 你可以将它添加到您的回答,所以我们都选择在这里? foreach ($item in $filteredList) {Remove-Item -WhatIf -Recurse Registry::$item}. 实际上我开始喜欢置。 但是,鉴于我的版本没有工作,但是你首先提出的解决方案,使我不知道。
Gunter

谢谢你接受、冈特,我很高兴解释是有益的。 老实说,鉴于该方案的回答是更简洁(没有循环)和速度比一个 foreach环解决方案,我不认为后者是值得增加。 是的,这不是显而易见的,为什么 $filteredList | Remove-Item -WhatIf -Recurse 工作(参见 这个答复)和怪癖周围的传递路径可以是令人沮丧的。 但是,尽管其所有疣的文件有一个很大的提供。
mklement0

谢谢你的额外的链接。 我看到我要学会相当了解如何Powershell命令实际上都是处理信息。 也谢谢你指出的是,循环的解决办法将实际上更慢。 事实上文有很大的提供。 我现在真的很喜欢它用于自动化的东西,它采取了不少的点击,否则(重新启动服务,删除注册条目,重新启动explorer.exe). 所以我希望爱恨关系with advanced现在:-)
Gunter

其他语言

此页面有其他语言版本

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................