В настоящее время меня очень раздражают Dropbox и Nextcloud, которые оба борются со списком идентификаторов ShellIconOverlayIdentifier. Проблема, с которой, похоже, сталкиваются многие люди, когда вы ищете в Интернете.
Теперь я хочу объединить свое раздражение с намерением изучить powershell (7.2.0).
Я начал со следующего скрипта, который должен извлечь все ключи. И позже я хочу использовать регулярное выражение через -match
чтобы найти записи, которые я хочу удалить. На данный момент я работаю с обоими Remove-Item -WhatIf
и Get-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.
Внешне он добавляет путь как относительный путь к текущему местоположению. Почему это не интерпретируется как абсолютный путь? Когда я удаляю часть push-местоположения, она пытается добавить путь к реестру в мой текущий рабочий каталог, в котором находится скрипт. Но и это тоже неправильно.
Заранее спасибо за вашу помощь.
foreach ($item in $filteredList) {Remove-Item -WhatIf -Recurse Registry::$item}
. На самом деле мне начинал нравиться Powershell. Но, учитывая, что моя версия не сработала, но ваше первое предложенное решение работает, заставляет меня задуматься.