Hvorfor fjerner Normal Software Uninstalls ikke å fjerne alle relevante verdier fra registret?
Når du avinstallerer et program, er det en "rimelig" forventning om at alle spor av det vil bli fjernet fra systemet ditt, men det er ofte ikke tilfelle. Hvorfor det? Dagens SuperUser Q & A-post har svar på en nysgjerrig leser spørsmål.
Dagens Spørsmål & Svar-sesjon kommer til oss med høflighet av SuperUser-en underavdeling av Stack Exchange, en fellesskapsdrevet gruppering av Q & A-nettsteder.
Skjermbilde høflighet (Flickr).
Spørsmålet
SuperUser leser Mark Boulder vil vite hvorfor noen registreringsverdier forblir alltid etter at en vanlig programvare avinstallerer:
Utvide på SuperUser-emnet Hvordan fjerner jeg resterende spor av avinstallert programvare fra registeret, hvorfor er det at hver gang jeg avinstallerer et program og senere ser det opp via RegEdit, er det fremdeles der?
Hvorfor er flertallet av Windows-programmer så hensiktsmessig å forlate små små spor av seg selv i registret? Finner feilen med Windows eller med utviklerne?
Hvorfor er registreringsverdiene vanligvis "etterlatt" etter normalt avinstallering av programvare?
Svaret
SuperUser-bidragsytere Lukas Rieger og Keltari har svaret for oss. Først opp, Lukas Rieger:
Fordi det er umulig. Registeret har flere rotenoder, men bare to interessante: LocalMachine og CurrentUser. Normalt skriver oppsettet verdier til LocalMachine, og det kjørende programmet skriver bare til CurrentUser (faktisk, med mindre installasjonen roterer med tillatelsene, det kjørende programmet kan ikke skrive inn LocalMachine).
Mens du holder leftovers i LocalMachine, er latskap (som påpekt av de andre svarene), er det ikke mulig å rengjøre CurrentUser-delen.
Hvis et program er installert per maskin (som de fleste er) og flere brukere bruker det, hva skal avinstallasjonsprogrammet gjøre? Det kan trygt fjerne brukerinnstillingene for gjeldende konto, men gjeldende konto er kanskje ikke din konto. Dette skjer hvis du startet avinstalleringen fra en ikke-administrasjonskonto og deretter skrev inn legitimasjonene til en adminkonto, oppsettet kjører nå under den kontoen, ikke den første.
Hva med de andre brukerne? Det kan forsøke å oppregne alle brukere, men registernøklene kan ikke lastes inn (Windows er lat og laster bare de tingene det trenger).
Men du bør ikke engang prøve det. Hvis du bruker roaming-profiler (dvs. terminaltjenester) og deretter sletter alle innstillinger ved avinstallasjon, kan du virkelig rote opp og slette ting som faktisk er i bruk. En terminalserver er i utgangspunktet en Windows-maskin der flere brukere logger på samtidig og bruker applikasjoner. Si at du har to terminalservere som kjører ett program. Du avinstallerer programmet på TS1, nå er alle innstillingene for alle brukere gått på TS2 fordi du har roaming-profiler. Oops.
Det samme gjelder også filer i brukerens kataloger. I oppsettet av selskapets programmer sletter jeg maskinens ting, men berør ikke brukerens ting, ikke engang brukeren som kjører oppsettet.
Etterfulgt av svaret fra Keltari:
Det er mange grunner til at dette er tilfelle, men det er ikke feilen til Microsoft eller Windows-operativsystemet.
Følgende er en liste over enkelte tilfeller og grunner til at registeroppføringene blir etterlatt:
Dårlig programmering - Utvikleren har ikke skrevet programavinstalleringen riktig og registeroppføringene er etterlatt. I tillegg til dette kan ikke installasjonsprogrammet ha / bruke de riktige tillatelsene for å fjerne registeroppføringene. Det kan også være at det er mer enn ett program som bruker disse nøklene. For eksempel to programmer fra samme utvikler som skriver til de samme tastene.
Venstre med hensikt - Som en kommentar nevnt, kunne disse oppføringene ha blitt etterlatt med vilje. Noen programmer har en prøveperiode, og etter den perioden kan du velge å fjerne programmet. Hvis du velger å installere programmet senere, gir disse tastene programinformasjonen når den ble installert. I tillegg til det, kan noen utviklere velge å forlate disse nøklene i tilfelle du velger å installere programmet på nytt. Hvis utvikleren brukte registernøkler til å lagre tilpasningene dine, kan de forlate dem der, slik at alle tilpasninger fortsetter når du installerer programmet på nytt. I den store ordningen av ting, tar registernøkler bare opp noen få byte.
Skal du fjerne tastene? Det kommer an på. Windows-registeret er et farlig sted å rote rundt. Du kan ved et uhell ødelegge systemet. Å forlate de fremmede tastene vil ikke skade systemet. Noen vil si at rengjøring / defragging av registret vil øke hastigheten på systemet ditt, men det har blitt påvist falsk gjentatte ganger.
Hvis du virkelig vil bli kvitt disse programmene, er det noen avinstalleringsverktøy som kan fjerne hvert spor av et program. Disse programmene vil se installatøren av et annet program og registrere alle handlinger som er gjort for filsystemet og registret, og fjern deretter disse handlingene helt. Et problem med disse verktøyene er at det er mulig at de kan fjerne ting du kanskje vil beholde.
Har du noe å legge til forklaringen? Lyder av i kommentarene. Vil du lese flere svar fra andre tech-savvy Stack Exchange-brukere? Sjekk ut hele diskusjonstråden her.