Powershell 을 사용하여 삭제 ShellIconOverlayIdentifiers 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. 분명히 그것에 추가로 상대 경로 현재의 위치에 있습니다. 하지 않는 이유는 무엇으로 해석하는 절대 경로가? When I ommit push-위치 관련 부분을 추가하는 레지스트리에 경로를 내는 현재 작업 디렉터리에서는 스크립트는 삶입니다. 하지만 이것은 잘못된 것입니다.

당신의 도움에 감사드립니다.

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-Itemko -LiteralPath 매개 변수를 통해 그들의 .PSPath 호텔의 경우 레지스트리 경로,경로의 접두사는 공급자 Microsoft.PowerShell.Core\Registry:: (경우,또는 식별하는 발생하는 모듈이 되지 않습니다 또한 필요 Registry::로에서 사용되는 Push-Location 전화)

나타나는 것이 일어나고 있는 경우 항목은 stringified -는 어떻게 전달할 때 그 전체로서, 인수로 (예: 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 일(참조 이 답변),및 단점에 주위에 전달 경로의 복잡할 수 있습니다. 하지만,그럼에도 불구하고 모든 사마귀,PowerShell 이 많이 있을 제공합니다.
mklement0

감사에 대한 추가 링크가 있습니다. 나는 나는 법을 배워야 꽤는 방법을 이해하 Powershell cmdlet 실제로 정보를 처리하는 단계를 포함한다. 고도에 대한 감사를 가리키는 것을 반복 해결책이 실제로 속도가 느려질 수 있습니다. 실제로,Powershell 이 많이 있을 제공합니다. 나는 현재의 위치를 자동화하는 물건,는 꽤 몇 번의 클릭으로 그렇지 않으면(다시 시작하는 서비스,레지스트리 항목 삭제,다시 시작 explorer.exe). 그래서 나는 기 애-과의 관계 powershell 지금:-)
Gunter

다른 언어로

이 페이지는 다른 언어로되어 있습니다

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