¿Por qué las desinstalaciones de software normales no eliminan todos los valores relevantes del registro?
Cuando desinstala un programa, es una expectativa "razonable" que todos los rastros se eliminarán de su sistema, pero a menudo no es así. ¿Porqué es eso? La publicación de preguntas y respuestas de SuperUser de hoy tiene las respuestas a la pregunta de un lector curioso.
La sesión de Preguntas y Respuestas de hoy nos llega por cortesía de SuperUser, una subdivisión de Stack Exchange, un grupo de sitios web de preguntas y respuestas impulsado por la comunidad..
Captura de pantalla cortesía de wandersick (Flickr).
La pregunta
El lector Superusuario Mark Boulder quiere saber por qué algunos valores del registro siempre permanecen después de una desinstalación normal del software:
Expandiendo el tema del Superusuario ¿Cómo elimino del registro los rastros residuales del software desinstalado? ¿Por qué cada vez que desinstalo un programa y luego lo busco a través de RegEdit, todavía está allí??
¿Por qué la mayoría de las aplicaciones de Windows intentan dejar pequeñas huellas de sí mismas en el registro? ¿La culpa es de Windows o de los desarrolladores??
¿Por qué los valores de registro generalmente se “quedan atrás” después de desinstalar el software normalmente??
La respuesta
Los colaboradores de Superusuario Lukas Rieger y Keltari tienen la respuesta para nosotros. Primero, Lukas Rieger:
Porque es imposible. El registro tiene varios nodos raíz, pero solo dos interesantes: LocalMachine y CurrentUser. Normalmente, el programa de instalación escribe valores en LocalMachine, y el programa en ejecución solo escribe en CurrentUser (en realidad, a menos que el programa de instalación tenga problemas con los permisos, el programa en ejecución no puede escribir en LocalMachine).
Si bien mantener las sobras en LocalMachine es pereza (como lo señalan las otras respuestas), no es posible limpiar la parte CurrentUser.
Si se instala un programa por máquina (que son la mayoría) y lo usan varios usuarios, ¿qué debe hacer el desinstalador? Podría eliminar de forma segura la configuración de usuario de la cuenta actual, pero la cuenta actual podría no ser su cuenta. Esto sucede si inició el desinstalador desde una cuenta que no es de administrador y luego ingresó las credenciales de una cuenta de administrador, la configuración ahora se ejecuta bajo esa cuenta, no la primera..
¿Qué pasa con los otros usuarios? Podría intentar enumerar a todos los usuarios, pero sus claves de registro podrían no estar cargadas (Windows es perezoso y solo carga lo que necesita).
Pero ni siquiera deberías intentarlo. Si usa perfiles móviles (es decir, servicios de terminal) y luego borra todas las configuraciones durante la desinstalación, realmente podría desordenar y eliminar cosas que aún están en uso. Un servidor de terminal es básicamente una máquina de Windows en la que múltiples usuarios inician sesión al mismo tiempo y usan aplicaciones. Digamos que tiene dos servidores de terminal ejecutando una aplicación. Desinstala la aplicación en TS1, ahora todas las configuraciones para todos los usuarios se han ido en TS2 porque tiene perfiles móviles. Ups.
Lo mismo se aplica a los archivos en los directorios por usuario. En la configuración de los programas de mi empresa, elimino las cosas por máquina pero no toco las cosas por usuario, ni siquiera del usuario que ejecuta la configuración actualmente.
Seguido por la respuesta de Keltari:
Hay muchas razones por las que este es el caso, sin embargo, no es culpa de Microsoft o del sistema operativo Windows.
La siguiente es una lista de algunos casos y razones por las cuales las entradas de registro se quedan atrás:
Mala programación - El desarrollador no escribió el desinstalador de la aplicación correctamente y las entradas de registro se quedan atrás. Además de eso, es posible que el desinstalador no tenga / use los permisos adecuados para eliminar las entradas de registro. También podría ser que haya más de una aplicación que use esas teclas. Por ejemplo, dos aplicaciones del mismo desarrollador que escriben en las mismas teclas..
Izquierda en propósito - Como se mencionó en un comentario, estas entradas podrían haberse dejado a propósito. Algunas aplicaciones tienen un período de prueba y, después de ese período, puede elegir eliminar la aplicación. Si elige reinstalar la aplicación más tarde, esas claves le dan información sobre la aplicación cuando se instaló. Además de eso, algunos desarrolladores pueden optar por dejar esas claves en caso de que elija reinstalar la aplicación. Si el desarrollador usó las claves de registro para almacenar sus personalizaciones, podrían dejarlas allí para que al reinstalar la aplicación, todas sus personalizaciones persistan. En el gran esquema de las cosas, las claves de registro solo ocupan unos pocos bytes.
¿Deberías quitar las llaves? Eso depende. El registro de Windows es un lugar peligroso para entrometerse. Usted puede romper su sistema sin darse cuenta. Dejar las llaves extrañas no dañará el sistema. Algunas personas dirán que limpiar / desfragmentar el registro acelerará su sistema, pero se ha demostrado que esto es falso repetidamente.
Si realmente desea deshacerse de esos programas, hay algunas herramientas de desinstalación que pueden eliminar todos los rastros de un programa. Estos programas verán el instalador de otro programa y registrarán todas las acciones realizadas en el sistema de archivos y el registro, y luego eliminarán por completo esas acciones. Un problema con estas herramientas es que es posible que puedan eliminar las cosas que desee conservar..
¿Tienes algo que agregar a la explicación? Apaga el sonido en los comentarios. ¿Quieres leer más respuestas de otros usuarios de Stack Exchange con experiencia en tecnología? Echa un vistazo a la discusión completa aquí.