Zakaj Normalna programska oprema izklopi napake pri odstranitvi vseh pomembnih vrednosti iz registra?
Ko odstranite program, je »razumno« pričakovati, da bodo vse sledi odstranjene iz vašega sistema, vendar to pogosto ni tako. Zakaj? Današnja postavka SuperUser Q&A ima odgovore na zanimivo vprašanje bralca.
Današnja seja vprašanj in odgovorov prihaja z namenom SuperUser-a, ki je del skupine Stack Exchange, ki temelji na skupnostih spletnih mest za vprašanja in odgovore.
Posnetek zaslona je omogočil Wandersick (Flickr).
Vprašanje
Bralnik SuperUser Mark Boulder želi vedeti, zakaj nekatere vrednosti registra vedno ostanejo po običajni odstranitvi programske opreme:
Razširitev na temo SuperUser Kako odstranim preostale sledi neregistrirane programske opreme iz registra, zakaj je to, da vsakič, ko odstranim program in kasneje pogledam preko RegEdita, še vedno obstaja?
Zakaj je večina Windows aplikacij tako namere, da bi pustile drobne sledove v registru? Ali krivda leži v operacijskem sistemu Windows ali pri razvijalcih?
Zakaj so vrednosti registra običajno „zaostale“ po običajno odstranjevanju programske opreme?
Odgovor
Prispevki super uporabnika Lukas Rieger in Keltari imajo odgovor za nas. Prvič, Lukas Rieger:
Ker je to nemogoče. Register ima več korenskih vozlišč, vendar le dva zanimiva: LocalMachine in CurrentUser. Običajno nastavitev zapiše vrednosti v LocalMachine, program, ki teče, pa samo piše v CurrentUser (dejansko, razen če nastavitev zamenja dovoljenja, tekoči program ne more pisati v LocalMachine).
Medtem ko je ohranjanje ostankov v programu LocalMachine lenoba (kot kažejo drugi odgovori), ni mogoče očistiti dela CurrentUser.
Če je program nameščen na računalnik (kar je večina) in ga uporablja več uporabnikov, kaj naj stori odstranjevalec? Lahko varno odstrani uporabniške nastavitve trenutnega računa, vendar trenutni račun morda ni vaš račun. To se zgodi, če ste odstranili program iz računa, ki ni skrbniški, in nato vnesete poverilnice skrbniškega računa, namestitev pa se zdaj izvaja pod tem računom, ne s prvim.
Kaj pa drugi uporabniki? Lahko bi poskušal našteti vse uporabnike, vendar se njihovi registrski ključi morda ne bodo naložili (Windows je len in nalaga le stvari, ki jih potrebuje).
Toda tega ne bi smeli niti poskusiti. Če uporabljate gostujoče profile (npr. Terminalske storitve) in nato izbrišete vse nastavitve za odstranitev, lahko resnično zamenjate in izbrišete stvari, ki so dejansko še v uporabi. Terminalski strežnik je v bistvu en stroj Windows, v katerem se istočasno prijavi več uporabnikov in uporabljajo aplikacije. Recimo, da imate dva terminalska strežnika, ki izvajajo eno aplikacijo. Odstranite aplikacijo na TS1, zdaj so vse nastavitve za vse uporabnike na TS2, ker imate gostujoče profile. Ups.
Enako velja tudi za datoteke v imenikih po uporabniku. Pri namestitvi programov mojega podjetja izbrišem stvari na računalnik, vendar se ne dotaknem stvari uporabnika, niti uporabnika, ki trenutno izvaja namestitev.
Sledi odgovor iz Keltarija:
Obstaja veliko razlogov, zakaj je to tako, vendar to ni krivda Microsofta ali operacijskega sistema Windows.
Sledi seznam nekaterih primerov in razlogov, zakaj so vnosi v registru zaostali:
Slabo programiranje - Razvijalec ni pravilno napisal aplikacije za odstranitev aplikacije in vnosi v registru so pustili za sabo. Poleg tega uninstaller morda nima / uporablja ustreznih dovoljenj za odstranitev vnosov v register. Lahko je tudi, da obstaja več aplikacij, ki uporabljajo te ključe. Na primer, dve aplikaciji istega razvijalca, ki pišeta na iste ključe.
Levo na namen - Kot je bilo omenjeno v enem komentarju, bi lahko te vnose pustili namerno. Nekatere aplikacije imajo poskusno obdobje in po tem obdobju lahko aplikacijo odstranite. Če boste pozneje znova namestili aplikacijo, bodo te tipke podale informacije o aplikaciji, ko je bila nameščena. Poleg tega se lahko nekateri razvijalci odločijo pustiti te ključe v primeru, da se odločite za ponovno namestitev aplikacije. Če je razvijalec uporabil registrske ključe za shranjevanje vaših prilagoditev, jih lahko pusti tam, tako da ob ponovni namestitvi aplikacije vse vaše prilagoditve ne bodo odpravljene. V veliki shemi stvari registrski ključi zasedajo le nekaj bajtov.
Naj odstranite ključe? To je odvisno. Windows registra je nevarno mesto za nered okoli. Lahko nenamerno prekinil vaš sistem. Če zapustite tuje ključe, sistem ne bo poškodovan. Nekateri bodo rekli, da bo čiščenje / defragmentiranje registra pospešilo vaš sistem, vendar je bilo to večkrat dokazano kot napačno.
Če se resnično želite znebiti teh programov, obstaja nekaj orodij za odstranjevanje, ki lahko odstranijo vse sledi programa. Ti programi bodo gledali namestitveni program drugega programa in beležili vsa opravljena dejanja v datotečni sistem in register, nato pa popolnoma odstranili ta dejanja. Ena težava s temi orodji je, da je mogoče odstraniti stvari, ki jih boste morda želeli obdržati.
Imate kaj dodati pojasnilu? Zvok v komentarjih. Želite prebrati več odgovorov drugih uporabnikov tehnologije Stack Exchange? Oglejte si celotno nit razprave tukaj.