Úvodná » ako » Prečo sa pri normálnom odinštalovaní softvéru nepodarí odstrániť všetky relevantné hodnoty z registra?

    Prečo sa pri normálnom odinštalovaní softvéru nepodarí odstrániť všetky relevantné hodnoty z registra?

    Keď odinštalujete program, je to "rozumné" očakávanie, že všetky jeho stopy budú odstránené z vášho systému, ale často to tak nie je. Prečo to je? Dnešný príspevok SuperUser Q & A má odpovede na otázku zvedavého čitateľa.

    Dnešná relácia otázok a odpovedí sa k nám pridelí zdvorilosťou SuperUser - podskupiny Stack Exchange, zoskupenia webových stránok typu Q & A.

    Snímka s ukážkou aplikácie wandersick (Flickr).

    Otázka

    Čítačka SuperUser Mark Boulder chce vedieť, prečo niektoré hodnoty databázy Registry vždy zostávajú po normálnom odinštalovaní softvéru:

    Rozšírenie témy SuperUser Ako odstrániť zvyškové stopy neodinštalovaného softvéru z registra, prečo je to vždy, keď odinštalujem program a neskôr ho vyhľadám cez RegEdit, je tam stále?

    Prečo je väčšina aplikácií Windows tak zamýšľaná, aby nechali v registri drobné stopy sami? Vyskytuje sa chyba v systéme Windows alebo s vývojármi?

    Prečo sú hodnoty registrov zvyčajne "zaostávajú" po normálnej odinštalácii softvéru?

    Odpoveď

    Sponzori SuperUser Lukas Rieger a Keltari majú odpoveď pre nás. Po prvom, Lukas Rieger:

    Pretože to nie je možné. Registry majú viacero koreňových uzlov, ale iba dve zaujímavé: LocalMachine a CurrentUser. Normálne nastavenie zapisuje hodnoty do LocalMachine a bežiaci program zapíše iba do CurrentUser (v skutočnosti, ak inštalácia neporiadok s oprávneniami, bežiaci program nemôže zapisovať do LocalMachine).

    Pri zachovávaní zvyškov v LocalMachine je lenivosť (ako to zdôrazňujú ostatné odpovede), nie je možné vyčistiť časť CurrentUser.

    Ak je nainštalovaný program na jeden stroj (ktorý je väčšinou) a na viacerých používateľov ho používa, čo by mal odinštalátor urobiť? Môže sa bezpečne odstrániť používateľské nastavenia aktuálneho účtu, ale aktuálny účet nemusí byť váš účet. Stane sa to vtedy, ak ste spustili odinštalačný program z účtu, ktorý nie je administrátorom a potom ste zadali poverenia účtu administrátora, nastavenie sa teraz spúšťa pod týmto účtom, a nie prvým.

    A čo ostatní používatelia? Mohlo by sa pokúsiť vymenovať všetkých používateľov, ale ich kľúče databázy Registry sa nemusia načítať (Windows je lenivý a načíta len to, čo potrebuje).

    Ale nemali by ste to ani skúsiť. Ak používate cestovné profily (t. J. Terminálové služby) a potom odstrániť všetky nastavenia pri odinštalovaní, mohli by ste naozaj narušiť a odstrániť skutočne používané veci. Terminálový server je v podstate jeden stroj so systémom Windows, v ktorom sa viacerí používatelia prihlásia súčasne a používajú aplikácie. Povedzme, že máte dva terminálové servery s jednou aplikáciou. Odinštalujete aplikáciu na TS1, teraz všetky nastavenia pre všetkých používateľov prešli na TS2, pretože máte roamingové profily. Oops.

    To isté platí aj pre súbory v adresároch pre používateľa. Pri nastavovaní programov mojej spoločnosti odstraňujem položky zo stroja, ale nedotýkam sa jednotlivých používateľov, dokonca ani používateľov, ktorí momentálne používajú nastavenie.

    Nasledovala odpoveď od Keltari:

    Existuje mnoho dôvodov, prečo je to tak, ale nie je to chyba spoločnosti Microsoft alebo operačného systému Windows.

    Nasleduje zoznam niektorých prípadov a dôvodov, prečo sú položky databázy Registry opustené:

    Zlé programovanie - Vývojár nepípal program na odinštalovanie aplikácie správne a položky databázy registry zostali za sebou. Navyše, odinštalátor nemusí mať / použiť správne oprávnenia na odstránenie položiek databázy Registry. Mohlo by tiež existovať viac aplikácií, ktoré používajú tieto kľúče. Napríklad dve aplikácie od toho istého vývojára, ktoré píšu na rovnaké kľúče.

    Vľavo na účel - Ako sa spomína jedna poznámka, tieto záznamy mohli byť ponechané účelné. Niektoré aplikácie majú skúšobné obdobie a po uplynutí tohto obdobia sa môžete rozhodnúť odstrániť aplikáciu. Ak sa rozhodnete aplikáciu opätovne nainštalovať, tieto kľúče obsahujú informácie o aplikácii, kedy bola nainštalovaná. Okrem toho sa niektorí vývojári môžu rozhodnúť opustiť tieto kľúče v prípade, že sa rozhodnete preinštalovať aplikáciu. Ak vývojár použil kľúče databázy Registry na ukladanie vašich prispôsobení, mohol by ich opustiť tam, takže pri preinštalovaní aplikácie pretrvávajú všetky prispôsobenia. Vo veľkom systéme vecí, kľúče databázy Registry trvajú len niekoľko bajtov.

    Mali by ste odstrániť kľúče? To záleží. Registry systému Windows sú nebezpečným miestom, kde môžete zabrať. Môžete neúmyselne prerušiť systém. Odchod z cudzích kľúčov nepoškodí systém. Niektorí ľudia budú hovoriť, že čistenie / defragmentácia registra urýchli váš systém, ale toto sa opakovane potvrdilo.

    Ak sa naozaj chcete zbaviť týchto programov, existujú niektoré nástroje na odinštalovanie, ktoré dokážu odstrániť každú stopu programu. Tieto programy budú sledovať inštalačný program iného programu a zaznamenávať všetky činnosti vykonané do súborového systému a registra a potom úplne odstrániť tieto akcie. Jedným z problémov s týmito nástrojmi je, že je možné, že môžu odstrániť veci, ktoré by ste mohli chcieť zachovať.


    Máte niečo doplniť vysvetlenie? Znie to v komentároch. Chcete sa dozvedieť viac odpovedí od iných používateľov technickej úrovne Stack Exchange? Pozrite sa na celý diskusný príspevok tu.