10Aug
Quando você desinstala um programa, é uma expectativa "razoável" de que todos os vestígios dele serão removidos do seu sistema, mas isso geralmente não é o caso. Por que é que? O super-usuário Q & A Post tem respostas para a pergunta de um leitor curioso.
Today's Question &A sessão de atendimento chega a cortesia do SuperUser - uma subdivisão do Stack Exchange, um agrupamento comunitário de sites Q & A.
Captura de tela de tela de Wandersick( Flickr).
A questão
Leitor de superutilizador Mark Boulder quer saber por que alguns valores de registro permanecem sempre após uma desinstalação normal do software:
Expansão no tópico SuperUser Como eu removo traços residuais de software desinstalado do registro, por que é que toda vez que desinstaloum programa e, em seguida, procure-o através do RegEdit, ainda está lá?
Por que a maioria das aplicações do Windows está tão intencional em deixar minúsculos pequenos rastros de si mesmos no registro? A culpa é com o Windows ou com os desenvolvedores?
Por que os valores de registro geralmente "deixados para trás" depois de desinstalar normalmente o software?
A resposta As contribuições
SuperUser Lukas Rieger e Keltari têm a resposta para nós. Primeiro, Lukas Rieger:
Porque é impossível. O registro possui vários nós raiz, mas apenas dois interessantes: LocalMachine e CurrentUser. Normalmente, a configuração grava valores na LocalMachine, e o programa em execução só grava no CurrentUser( na verdade, a menos que a configuração assuma com as permissões, o programa em execução não pode gravar na LocalMachine).
Enquanto mantém os restos em LocalMachine é preguiça( como apontado pelas outras respostas), não é possível limpar a parte CurrentUser.
Se um programa é instalado por máquina( a maioria deles) e vários usuários usam, o que o desinstalador deve fazer? Poderia remover com segurança as configurações do usuário da conta atual, mas a conta atual talvez não seja sua conta. Isso acontece se você iniciou o desinstalador de uma conta não gerenciada e, em seguida, inseriu as credenciais de uma conta de administrador, a configuração agora está sendo executada sob essa conta, e não a primeira.
E quanto aos outros usuários? Poderia tentar enumerar todos os usuários, mas suas chaves de registro podem não ser carregadas( o Windows é preguiçoso e apenas carrega as coisas que ele precisa).
Mas você não deve tentar isso. Se você usa perfis de roaming( ou seja, serviços de terminal) e, em seguida, exclua todas as configurações na desinstalação, você pode realmente bagunçar e excluir coisas que ainda estão em uso. Um servidor de terminal é, basicamente, uma máquina do Windows, onde vários usuários fazem logon ao mesmo tempo e usam aplicativos. Digamos que você tenha dois servidores de terminal executando um aplicativo. Você desinstala o aplicativo no TS1, agora todas as configurações para todos os usuários desapareceram no TS2 porque você possui perfis móveis. Oops.
O mesmo aplica-se aos arquivos nos diretórios por usuário. Na configuração dos programas da minha empresa, excluo as coisas por máquina, mas não toque as coisas por usuário, nem mesmo do usuário que está executando a instalação.
Seguido pela resposta de Keltari:
Existem muitas razões pelas quais esse é o caso, no entanto, não é culpa da Microsoft ou do sistema operacional Windows.
O seguinte é uma lista de alguns casos e razões pelas quais as entradas de registro são deixadas para trás:
Programação incorreta - O desenvolvedor não gravou o desinstalador do aplicativo corretamente e as entradas do registro foram deixadas para trás. Além disso, o desinstalador pode não ter / usar as permissões adequadas para remover as entradas de registro. Também pode ser que existam mais de uma aplicação que use essas chaves. Por exemplo, dois aplicativos do mesmo desenvolvedor que escrevem para as mesmas chaves.
Left On Purpose - Como um comentário mencionado, essas entradas poderiam ter sido deixadas de propósito. Algumas aplicações têm um período de teste e, após esse período, você pode optar por remover o aplicativo. Se você optar por reinstalar o aplicativo mais tarde, essas chaves fornecem as informações do aplicativo quando ele foi instalado. Além disso, alguns desenvolvedores podem optar por deixar essas chaves no caso de você optar por reinstalar o aplicativo. Se o desenvolvedor usou as chaves de registro para armazenar suas personalizações, elas podem deixá-las para que, quando você reinstalar o aplicativo, todas as suas personalizações persistirem. No grande esquema das coisas, as chaves de registro só ocupam alguns bytes.
Você deve remover as chaves? Depende. O registro do Windows é um lugar perigoso para se mexer. Você pode inadvertidamente quebrar seu sistema. Deixar as teclas estranhas não vai prejudicar o sistema. Algumas pessoas dirão que limpar / desfragmentar o registro irá acelerar seu sistema, mas isso foi provado falso repetidamente.
Se você deseja realmente se livrar desses programas, existem algumas ferramentas de desinstalação que podem remover todos os vestígios de um programa. Esses programas assistirão o instalador de outro programa e gravarão todas as ações realizadas no sistema de arquivos e no registro, então remova completamente essas ações. Um problema com essas ferramentas é que é possível que elas possam remover coisas que você pode querer manter.
Tem alguma coisa a adicionar à explicação? Som desligado nos comentários. Deseja ler mais respostas de outros usuários Tech-savvy Stack Exchange? Confira o tópico de discussão completo aqui.