Proč se při normálním odinstalování softwaru nezdaří odebrat všechny relevantní hodnoty z registru?
Když odinstalujete program, je to "rozumné" očekávání, že všechny jeho stopy budou z vašeho systému odstraněny, ale často tomu tak není. Proč je to tak? Dnešní příspěvek SuperUser Q & A má odpovědi na otázku zvědavé čtenáře.
Dnešní zasedání Otázky a odpovědi nás přichází s laskavým svolením SuperUser - podřízené rozdělení Stack Exchange, které je založeno na komunitě prostřednictvím skupin webových stránek.
Screenshot s laskavým svolením od wandersick (Flickr).
Otázka
Snímač SuperUser Mark Boulder chce vědět, proč některé hodnoty registru zůstanou vždy po normálním odinstalování softwaru:
Rozšíření tématu SuperUser Jak odstranit zbytky stop odinstalovaného softwaru z registru, proč je to vždy, když odinstaluji program a později ho prohlížím přes RegEdit, je tam stále?
Proč je většina aplikací systému Windows tak zamýšlená, že nechávají v registru drobné stopy samy o sobě? Chyba je v systému Windows nebo u vývojářů?
Proč jsou hodnoty registru zpravidla "zaostávány" po normálním odinstalování softwaru?
Odpověď
Příznivci SuperUser Lukas Rieger a Keltari mají pro nás odpověď. První, Lukas Rieger:
Protože to není možné. Registr obsahuje více kořenových uzlů, ale pouze dvě zajímavé: LocalMachine a CurrentUser. Normálně nastavení zapisuje hodnoty do LocalMachine a běžící program zapíše pouze do CurrentUser (vlastně, pokud instalace neschází s oprávněním, běžící program nemůže zapisovat do LocalMachine).
Při zachování zbytků v LocalMachine je lenost (jak je zdůrazněno v dalších odpovědích), není možné vyčistit součást CurrentUser.
Je-li na počítači nainstalován nějaký program (který je většinou) a více uživatelů jej používá, co by měl odinstalovatel udělat? Bezpečné odstranění uživatelských nastavení aktuálního účtu, ale současný účet nemusí být váš účet. K tomu dojde, pokud jste spustili odinstalační program z účtu jiného než administrátora a pak jste zadali pověření administrátorského účtu, nastavení se nyní spouští pod tímto účtem, nikoliv prvním.
A co ostatní uživatelé? Může se pokusit vyčíslit všechny uživatele, ale jejich klíče registru nemusí být načteny (Windows je líný a načte pouze to, co potřebuje).
Ale neměli byste to zkusit. Pokud používáte roamingové profily (tj. Terminálové služby) a pak odstraníte všechna nastavení při odinstalaci, můžete opravdu zmást a odstranit věci, které jsou ve skutečnosti ještě používány. Terminálový server je v podstatě jeden počítač se systémem Windows, kde se najednou přihlásí více uživatelů a používají aplikace. Řekněme, že máte dva terminálové servery s jednou aplikací. Odinstalujete aplikaci na TS1, nyní všechny nastavení pro všechny uživatele zmizely v TS2, protože máte roamingové profily. Jejda.
Totéž platí pro soubory v adresářích pro uživatele. Při nastavení programů mé společnosti odstraňuji jednotlivé položky stroje, ale nedotýkám se jednotlivých uživatelů, ani uživatelů, kteří aktuálně používají nastavení.
Následuje odpověď od Keltari:
Existuje mnoho důvodů, proč tomu tak je, nicméně není to chyba společnosti Microsoft nebo operačního systému Windows.
Následuje seznam některých případů a důvody, proč jsou položky registru opuštěny:
Špatné programování - Vývojář správně neodpisoval aplikaci pro odinstalaci a položky registru zůstaly za sebou. Kromě toho může odinstalátor pravděpodobně mít / nepoužít správná oprávnění k odebrání položek registru. Mohlo by také existovat více než jedna aplikace, která tyto klíče používá. Například dvě aplikace od stejného vývojáře, které zapisují do stejných klíčů.
Vlevo na účel - Jak bylo uvedeno v jedné poznámce, tyto záznamy mohly být ponechány účelné. Některé aplikace mají zkušební dobu a po uplynutí této doby se můžete rozhodnout odebrat aplikaci. Pokud se rozhodnete aplikaci znovu nainstalovat později, tyto klíče obsahují informace o aplikaci, kdy byla instalována. Kromě toho se někteří vývojáři mohou rozhodnout opustit tyto klíče v případě, že se rozhodnete aplikaci znovu nainstalovat. Pokud vývojář použije klíče registru pro ukládání vlastních úprav, může je nechat tam, takže při přeinstalaci aplikace zůstávají všechna vaše přizpůsobení. Ve velkém schématu věcí klíče registru zabírají pouze několik bajtů.
Máte-li klíče odstranit? To záleží. Registr systému Windows je nebezpečným místem, kde se můžete zabalit. Neúmyslně můžete systém přerušit. Ponechání cizích klíčů systém nepoškodí. Někteří lidé budou říkat, že čištění nebo defragmentace registru urychlí váš systém, ale to bylo opakovaně prokázáno opakovaně.
Pokud se opravdu chcete zbavit těchto programů, existují některé nástroje pro odinstalování, které mohou odstranit každou stopu programu. Tyto programy budou sledovat instalační program jiného programu a zaznamenávat všechny akce provedené do systému souborů a registru, poté tyto akce zcela odstraníte. Jedním z problémů s těmito nástroji je, že je možné, že mohou odstranit věci, které byste chtěli zachovat.
Musíte něco přidat k vysvětlení? Vyjměte v komentářích. Chcete se dozvědět více odpovědí od ostatních uživatelů technologie Stack Exchange? Podívejte se na celý diskusní příspěvek zde.