10Aug

Pourquoi les désinstallations logicielles normales ne parviennent-elles pas à supprimer toutes les valeurs pertinentes du registre?

Lorsque vous désinstallez un programme, il est "raisonnable" que toutes les traces de celui-ci soient supprimées de votre système, mais ce n'est souvent pas le cas. Pourquoi donc? Le SuperUser Q & A d'aujourd'hui a les réponses à la question d'un lecteur curieux.

Question d'aujourd'hui &La session de réponse nous est offerte par SuperUser, une subdivision de Stack Exchange, un regroupement communautaire de sites Web Q & A.

Image reproduite avec l'aimable autorisation de wandersick( Flickr).

La question lecteur

SuperUser Mark Boulder veut savoir pourquoi certaines valeurs de registre restent toujours après une désinstallation normale du logiciel:

Extension sur la rubrique SuperUser Comment puis-je supprimer les traces résiduelles de logiciels désinstallés du registre, pourquoi est-ce que chaque désinstallationun programme, puis plus tard le rechercher via RegEdit, il est toujours là?

Pourquoi la majorité des applications Windows ont-elles tellement l'intention de laisser de minuscules traces d'elles-mêmes dans le registre? La faute est-elle à Windows ou aux développeurs?

Pourquoi les valeurs de registre sont-elles généralement "laissées derrière" après la désinstallation normale du logiciel?

La réponse

SuperUser contributeurs Lukas Rieger et Keltari ont la réponse pour nous. Première place, Lukas Rieger:

Parce que c'est impossible. Le registre a plusieurs nœuds racines mais seulement deux intéressants: LocalMachine et CurrentUser. Normalement, le programme d'installation écrit des valeurs dans LocalMachine, et le programme en cours n'écrit que dans CurrentUser( en fait, à moins que le programme d'installation ne déroge aux permissions, le programme en cours ne peut écrire dans LocalMachine).

Tout en gardant les restes dans LocalMachine est la paresse( comme indiqué par les autres réponses), il n'est pas possible de nettoyer la partie CurrentUser.

Si un programme est installé par machine( ce qui est le cas le plus souvent) et que plusieurs utilisateurs l'utilisent, que doit faire le programme de désinstallation? Il pourrait supprimer en toute sécurité les paramètres utilisateur du compte actuel, mais le compte actuel pourrait ne pas être votre compte. Cela se produit si vous avez démarré le programme de désinstallation à partir d'un compte non administrateur, puis entré les informations d'identification d'un compte administrateur, la configuration est maintenant en cours d'exécution sous ce compte, pas le premier.

Qu'en est-il des autres utilisateurs? Il pourrait essayer d'énumérer tous les utilisateurs, mais leurs clés de registre pourraient ne pas être chargées( Windows est paresseux et ne charge que les choses dont il a besoin).

Mais vous ne devriez même pas essayer ça. Si vous utilisez des profils itinérants( c'est-à-dire des services de terminal), puis supprimez tous les paramètres lors de la désinstallation, vous risquez de vraiment endommager et de supprimer les éléments qui sont toujours utilisés. Un serveur Terminal Server est essentiellement une machine Windows sur laquelle plusieurs utilisateurs se connectent en même temps et utilisent des applications. Supposons que vous ayez deux serveurs Terminal Server exécutant une application. Vous désinstallez l'application sur TS1, maintenant tous les paramètres pour tous les utilisateurs sont partis sur TS2 parce que vous avez des profils itinérants. Oops.

La même chose s'applique également aux fichiers dans les répertoires par utilisateur. Dans la configuration des programmes de mon entreprise, je supprime les choses par machine, mais ne touche pas les choses par utilisateur, pas même l'utilisateur qui exécute actuellement la configuration.

Suivi de la réponse de Keltari:

Il y a plusieurs raisons pour lesquelles c'est le cas, cependant, ce n'est pas la faute de Microsoft ou du système d'exploitation Windows.

Voici une liste de certains cas et raisons pour lesquelles les entrées de registre sont laissées pour compte:

Mauvaise programmation - Le développeur n'a pas écrit le programme de désinstallation de l'application correctement et les entrées de registre sont restées en arrière. En plus de cela, le programme de désinstallation peut ne pas avoir / utiliser les autorisations appropriées pour supprimer les entrées de registre. Il se peut également qu'il y ait plus d'une application qui utilise ces clés. Par exemple, deux applications du même développeur qui écrivent sur les mêmes clés.

Left On Objet - Comme un commentaire mentionné, ces entrées auraient pu être laissées à dessein. Certaines applications ont une période d'essai et, après cette période, vous pouvez choisir de supprimer l'application. Si vous choisissez de réinstaller l'application ultérieurement, ces clés fournissent les informations sur l'application lors de son installation. En plus de cela, certains développeurs peuvent choisir de laisser ces clés au cas où vous choisissez de réinstaller l'application. Si le développeur utilise des clés de registre pour stocker vos personnalisations, elles peuvent les y laisser de sorte que lorsque vous réinstallez l'application, toutes vos personnalisations sont conservées. Dans le grand ordre des choses, les clés de registre ne prennent que quelques octets.

Faut-il retirer les clés?Ça dépend. Le registre de Windows est un endroit dangereux où vous pouvez déranger. Vous pouvez par inadvertance casser votre système. Laisser les touches superflues ne nuira pas au système. Certaines personnes diront que nettoyer / défragmenter le registre va accélérer votre système, mais cela a été prouvé faux à plusieurs reprises.

Si vous voulez vraiment vous débarrasser de ces programmes, il existe des outils de désinstallation qui peuvent supprimer toutes les traces d'un programme. Ces programmes regarderont le programme d'installation d'un autre programme et enregistreront toutes les actions effectuées sur le système de fichiers et le registre, puis supprimeront complètement ces actions. Un problème avec ces outils est qu'il est possible qu'ils puissent supprimer des choses que vous pourriez vouloir garder.

Avoir quelque chose à ajouter à l'explication? Sonnez dans les commentaires. Vous voulez lire plus de réponses d'autres utilisateurs de Stack Exchange? Découvrez le fil de discussion complet ici.