Hjemmeside » hvordan » Hvorfor fjerner Normal Software Uninstalls ikke at fjerne alle relevante værdier fra registreringsdatabasen?

    Hvorfor fjerner Normal Software Uninstalls ikke at fjerne alle relevante værdier fra registreringsdatabasen?

    Når du afinstallerer et program, er det en "rimelig" forventning om, at alle spor af det bliver fjernet fra dit system, men det er ofte ikke tilfældet. Hvorfor det? Dagens SuperUser Q & A indlæg har svar på en nysgerrig læsers spørgsmål.

    Dagens Spørgsmål & Svar session kommer til os med venlig hilsen af ​​SuperUser-en underafdeling af Stack Exchange, en community-driven gruppe af Q & A-websteder.

    Screenshot courtesy of wandersick (Flickr).

    Spørgsmålet

    SuperUser-læser Mark Boulder vil gerne vide, hvorfor nogle registreringsværdier altid forbliver efter en normal software afinstallation:

    Udvidelse på SuperUser-emnet Hvordan fjerner jeg resterende spor af afinstalleret software fra registreringsdatabasen, hvorfor er det, at hver gang jeg afinstallerer et program og senere ser det op via RegEdit, er det stadig der?

    Hvorfor er flertallet af Windows-programmer så hensigtsmæssige, at de forlader små små spor af sig selv i registreringsdatabasen? Er fejlen lig med Windows eller med udviklerne?

    Hvorfor er registreringsværdier normalt "efterladt" efter normalt at afinstallere software?

    Svaret

    SuperUser bidragydere Lukas Rieger og Keltari har svaret for os. Først op, Lukas Rieger:

    Fordi det er umuligt. Registreringsdatabasen har flere rodknudepunkter, men kun to interessante: LocalMachine og CurrentUser. Normalt skriver opsætningen værdier i LocalMachine, og det kørende program skriver kun til CurrentUser (faktisk, medmindre opsætningen roterer med tilladelserne, det kørende program kan ikke skrive til LocalMachine).

    Mens du holder rester i LocalMachine, er dovenskab (som påpeget af de andre svar), er det ikke muligt at rense CurrentUser-delen.

    Hvis der installeres et program pr. Maskine (som de fleste er) og flere brugere bruger det, hvad skal afinstalleringen gøre? Det kunne sikkert fjerne brugerindstillingerne for den aktuelle konto, men den aktuelle konto er muligvis ikke din konto. Dette sker, hvis du startede afinstallationsprogrammet fra en ikke-administratorkonto og derefter indtastede legitimationsoplysningerne til en adminkonto, er installationen nu kørende under den pågældende konto, ikke den første.

    Hvad med de andre brugere? Det kan forsøge at opregne alle brugere, men deres registreringsnøgler kan muligvis ikke indlæses (Windows er doven og laster kun de ting, den har brug for).

    Men du bør ikke engang prøve det. Hvis du bruger roaming-profiler (dvs. terminaltjenester) og derefter sletter alle indstillinger ved afinstallation, kan du virkelig ødelægge og slette ting, der rent faktisk stadig er i brug. En terminalserver er stort set en Windows-maskine, hvor flere brugere logger ind på samme tid og bruger applikationer. Sig, at du har to terminale servere, der kører en applikation. Du afinstallerer programmet på TS1, nu er alle indstillinger for alle brugere gået på TS2, fordi du har roaming-profiler. Ups.

    Det samme gælder også for filer i brugerbøgerne. Ved opsætningen af ​​mine virksomheds programmer sletter jeg maskinens ting, men berør ikke de enkelte brugere, ikke engang brugeren, der kører installationsprogrammet i øjeblikket..

    Efterfulgt af svaret fra Keltari:

    Der er mange grunde til, at dette er tilfældet, men det er ikke fejlen fra Microsoft eller Windows-operativsystemet.

    Nedenstående er en liste over nogle tilfælde og årsager til, at registreringsdatabasen er efterladt:

    Dårlig programmering - Udvikleren har ikke skrevet programafinstalleringen ordentligt, og registreringsdatabasen er efterladt. Desuden kan afinstalleringen muligvis ikke have / bruge de korrekte tilladelser til at fjerne registreringsposterne. Det kan også være, at der er mere end en applikation, der bruger disse nøgler. For eksempel to applikationer fra den samme udvikler, der skriver til de samme nøgler.

    Venstre Til Formål - Som en kommentar nævnt kunne disse indgange have været formået. Nogle programmer har en prøveperiode, og efter denne periode kan du vælge at fjerne applikationen. Hvis du vælger at geninstallere programmet senere, giver disse nøgler programoplysningerne, når den blev installeret. Ud over det kan nogle udviklere vælge at forlade disse nøgler, hvis du vælger at geninstallere applikationen. Hvis udvikleren brugte registreringsnøgler til at gemme dine tilpasninger, kan de muligvis lade dem være der, så når du geninstallerer programmet, fortsætter alle dine tilpasninger. I den store ordning af ting tager registreringsnøgler kun nogle få bytes.

    Skal du fjerne nøglerne? Det kommer an på. Windows-registreringsdatabasen er et farligt sted at ødelægge. Du kan ved et uheld bryde dit system. Hvis du forlader de fremmede nøgler, vil det ikke skade systemet. Nogle vil sige, at rengøring / defragging af registreringsdatabasen vil fremskynde dit system, men det er gentagne gange blevet bevist falsk.

    Hvis du virkelig vil slippe af med disse programmer, er der nogle afinstallationsværktøjer, der kan fjerne ethvert spor af et program. Disse programmer vil se installationsprogrammet til et andet program og registrere alle de handlinger, der er udført til filsystemet og registreringsdatabasen, og fjern derefter disse handlinger helt. Et problem med disse værktøjer er, at det er muligt, at de kan fjerne ting, du måske vil beholde.


    Har du noget at tilføje til forklaringen? Lyde af i kommentarerne. Vil du læse flere svar fra andre tech-savvy Stack Exchange brugere? Tjek den fulde diskussionstråd her.