Atualmente, estou muito irritado com o Dropbox e o Nextcloud, que tanto batalha a ShellIconOverlayIdentifier lista. Um problema que muitas pessoas parecem ter, quando você pesquisa na internet.
Agora eu quero combinar a minha irritação com a minha intenção de aprender powershell (7.2.0).
Eu comecei com o seguinte script, que deve recuperar todas as chaves. E, mais tarde, eu quero usar regex via -match
para encontrar as entradas que deseja excluir. Agora eu trabalho com ambos Remove-Item -WhatIf
e Get-ItemProperty
para testá-lo.
Atualmente o meu problema é que eu posso criar minha lista de como se pretende. Mas quando eu alimento a lista para o comando remove eu conseguir que o caminho não pode ser encontrado. O que estou fazendo de errado?
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
O erro é 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.
Aparentemente ele adiciona o caminho como caminho relativo para o local atual. Por que não interpretar como um caminho absoluto? Quando eu ommit o push-location parte trys para adicionar o caminho do registro para o meu diretório de trabalho atual, na qual o script de vida. Mas isso é bem errado.
Obrigado por sua ajuda antecipadamente.
foreach ($item in $filteredList) {Remove-Item -WhatIf -Recurse Registry::$item}
. Na verdade, eu estava começando a gostar do Powershell. Mas, dado que a minha versão não funcionou, mas a sua primeira solução proposta faz, me faz pensar.