10Aug

Varför avinstallerar normal programvara misslyckades att ta bort alla relevanta värden från registret?

När du avinstallerar ett program är det en "rimlig" förväntan att alla spår av det kommer att tas bort från ditt system, men det är ofta inte fallet. Varför är det så?Dagens SuperUser Q & A-inlägg har svaren på en nyfiken läsarens fråga.

Dagens fråga &Svarssession kommer till oss med tillstånd av SuperUser-en indelning av Stack Exchange, en community-driven gruppering av Q & A-webbplatser.

Skärmdump med tillstånd av wandersick( Flickr).

Frågan

SuperUser-läsaren Mark Boulder vill veta varför vissa registreringsvärden alltid kvarstår efter att en vanlig programvara avinstallerats:

Expandera på SuperUser-ämnet Hur tar jag bort återstående spår av avinstallerad programvara från registret, varför är det att varje gång jag avinstallerarett program och sedan titta upp det via RegEdit, är det fortfarande kvar?

Varför är majoriteten av Windows-program så avsedda att lämna små lilla spår av sig själva i registret? Finns felet med Windows eller med utvecklarna?

Varför registreras registervärden vanligtvis "efterlämnad" efter att vanligtvis avinstalleras programvara?

Svaret

SuperUser-bidragsgivare Lukas Rieger och Keltari har svaret för oss. Först, Lukas Rieger:

Eftersom det är omöjligt. Registret har flera rotnoder men bara två intressanta: LocalMachine och CurrentUser. Normalt skriver inställningen värden i LocalMachine, och det körprogrammet skriver bara till CurrentUser( faktiskt, om inte installationen roterar med behörigheterna, kan det pågående programmet inte skriva till LocalMachine).

Samtidigt som du håller kvar i LocalMachine är latskap( som påpekats av de andra svaren), är det inte möjligt att rengöra CurrentUser-delen.

Om ett program installeras per maskin( som de flesta är) och flera användare använder det, vad ska avinstallatören göra? Det kan säkert ta bort användarinställningarna för det aktuella kontot, men det aktuella kontot kanske inte är ditt konto. Detta händer om du startade avinstalleraren från ett icke-administratörskonto och sedan angav inloggningsuppgifterna för ett administratorkonto, körs installationen nu under det kontot, inte det första.

Vad med de andra användarna? Det kan försöka räkna upp alla användare, men deras registernycklar kanske inte laddas( Windows är lat och laddar bara de saker som behövs).

Men du borde inte ens försöka det. Om du använder roamingprofiler( d.v.s. terminaltjänster) och sedan raderar alla inställningar vid avinstallation, kan du verkligen förstöra och ta bort saker som faktiskt fortfarande används. En terminalserver är i princip en Windows-maskin där flera användare loggar in samtidigt och använder applikationer. Säg att du har två terminalservrar som kör en applikation. Du avinstallerar programmet på TS1, nu är alla inställningar för alla användare borta på TS2 eftersom du har roamingprofiler. Hoppsan.

Detsamma gäller även filer i användarkatalogerna. I inställningen av mitt företags program raderar jag per-maskinens saker, men rör inte per-användarna, inte ens av den användare som för närvarande kör installationen.

Följd av svaret från Keltari:

Det finns många anledningar till varför detta är fallet, men det är inte Microsoft eller Windows operativsystems fel.

Nedan följer en lista med några fall och orsaker till att registerposter lämnas kvar:

Dålig programmering - Utvecklaren skrev inte avinstallationsprogrammet korrekt och registerposter lämnas efter. Dessutom kan avinstallationsprogrammet inte ha / använda rätt behörighet för att ta bort registerposter. Det kan också vara att det finns fler än en applikation som använder dessa nycklar. Till exempel två applikationer från samma utvecklare som skriver till samma nycklar.

Vänster på syftet - Som en kommentar nämnde, kunde dessa poster ha lämnats med syfte. Vissa program har en provperiod och efter den perioden kan du välja att ta bort programmet. Om du väljer att installera om programmet senare, ger dessa nycklar programinformationen när den installerades. Utöver det kan vissa utvecklare välja att lämna dessa nycklar om du väljer att installera om programmet. Om utvecklaren använde registernycklar för att lagra dina anpassningar kan de lämna dem så att när du installerar om programmet fortsätter alla dina anpassningar. I det stora systemet med saker, tar registernycklar bara upp några byte.

Ska du ta bort nycklarna? Det beror på.Windows-registret är en farlig plats att röra sig i. Du kan oavsiktligt bryta ditt system. Om du lämnar de externa tangenterna skadas inte systemet. Vissa människor kommer att säga att rengöring / defragging av registret kommer att påskynda ditt system, men det har visat sig vara felaktigt upprepade gånger.

Om du verkligen vill bli av med de här programmen finns det några avinstalleringsverktyg som kan ta bort alla spår av ett program. Dessa program kommer att titta på installationsprogrammet för ett annat program och registrera alla åtgärder som gjorts för filsystemet och registret, och ta bort dem fullständigt. Ett problem med dessa verktyg är att det är möjligt att de kan ta bort saker som du kanske vill behålla.

Har något att lägga till förklaringen? Ljud av i kommentarerna. Vill du läsa mer svar från andra tech-savvy Stack Exchange-användare? Kolla in hela diskussionsgängan här.