If-Koubou

Dlaczego od zwykłych odinstalowań oprogramowania nie można usunąć wszystkich istotnych wartości z rejestru?

Dlaczego od zwykłych odinstalowań oprogramowania nie można usunąć wszystkich istotnych wartości z rejestru? (Jak)

Gdy odinstalujesz program, jest to "rozsądne" oczekiwanie, że wszystkie jego ślady zostaną usunięte z twojego systemu, ale często tak nie jest. Dlaczego? Dzisiejszy post z pytaniami i odpowiedziami dla SuperUser zawiera odpowiedzi na ciekawe pytanie czytelnika.

Dzisiejsza sesja pytań i odpowiedzi przychodzi do nas dzięki uprzejmości SuperUser - poddziału Stack Exchange, społecznościowego forum z pytaniami i odpowiedziami.

Zdjęcie dzięki uprzejmości wędrowca (Flickr).

Pytanie

Czytnik SuperUser Mark Boulder chce wiedzieć, dlaczego niektóre wartości rejestru pozostają zawsze po zwykłej dezinstalacji oprogramowania:

Rozszerzanie tematu SuperUser Jak usunąć pozostałości rejestru z odinstalowanego oprogramowania z rejestru, dlaczego za każdym razem, gdy odinstalowuję program, a następnie przeglądam go za pomocą RegEdit, nadal tam jest?

Dlaczego większość aplikacji systemu Windows jest tak skoncentrowana na pozostawianiu niewielkich śladów w rejestrze? Czy wina leży w Windowsie lub u deweloperów?

Dlaczego wartości rejestru są zwykle "pozostawione" po zwykłym odinstalowaniu oprogramowania?

Odpowiedź

Współpracownicy SuperUser Lukas Rieger i Keltari mają dla nas odpowiedź. Najpierw Lukas Rieger:

Ponieważ jest to niemożliwe. Rejestr ma wiele węzłów głównych, ale tylko dwie interesujące: LocalMachine i CurrentUser. Zwykle konfiguracja zapisuje wartości w LocalMachine, a działający program zapisuje tylko w CurrentUser (w rzeczywistości, chyba że konfiguracja nie działa z uprawnieniami, uruchomiony program nie może zapisać na LocalMachine).

Utrzymywanie pozostałości w LocalMachine to lenistwo (jak wskazują inne odpowiedzi), nie można wyczyścić części CurrentUser.

Jeśli program jest zainstalowany na maszynę (większość z nich jest) i wielu użytkowników z niej korzysta, co powinien zrobić deinstalator? Może bezpiecznie usunąć ustawienia użytkownika z bieżącego konta, ale bieżące konto może nie być Twoim kontem. Dzieje się tak, jeśli uruchomiłeś dezinstalator z konta innego niż administrator, a następnie wprowadziłeś poświadczenia konta administratora, konfiguracja jest teraz uruchomiona na tym koncie, a nie na pierwszym.

A co z pozostałymi użytkownikami? Może spróbować wyliczyć wszystkich użytkowników, ale ich klucze rejestru mogą nie zostać załadowane (system Windows jest leniwy i tylko ładuje rzeczy, których potrzebuje).

Ale nie powinieneś nawet tego próbować. Jeśli korzystasz z profili mobilnych (tj. Usług terminalowych), a następnie usuniesz wszystkie ustawienia podczas deinstalacji, możesz naprawdę zepsuć i usunąć rzeczy, które faktycznie są w użyciu. Serwer terminali to w zasadzie jeden komputer z systemem Windows, na którym wielu użytkowników loguje się jednocześnie i korzysta z aplikacji. Załóżmy, że masz dwa serwery terminali z jedną aplikacją. Odinstalowujesz aplikację na TS1, teraz wszystkie ustawienia dla wszystkich użytkowników zostały przeniesione na TS2, ponieważ masz profile mobilne. Ups.

To samo dotyczy plików w katalogach poszczególnych użytkowników. W ustawieniach programów mojej firmy usuwam rzeczy związane z maszyną, ale nie dotykam rzeczy na użytkownika, nawet tych, które aktualnie korzystają z instalacji.

Poniżej znajduje się odpowiedź Keltari:

Istnieje wiele powodów, dla których tak się dzieje, jednak nie jest to wina Microsoftu ani systemu operacyjnego Windows.

Poniżej znajduje się lista niektórych przypadków i przyczyn, dla których wpisy rejestru pozostają:

Złe programowanie - Programista nie napisał poprawnie dezinstalatora aplikacji, a wpisy rejestru pozostały. Ponadto deinstalator może nie mieć / używać odpowiednich uprawnień do usuwania wpisów rejestru. Możliwe też, że istnieje więcej niż jedna aplikacja korzystająca z tych kluczy. Na przykład dwie aplikacje od tego samego programisty, które piszą do tych samych kluczy.

Pozostawione w Celu - Jak wspomniano, te wpisy mogły zostać celowo pozostawione. Niektóre aplikacje mają okres próbny, a po tym okresie możesz usunąć aplikację. Jeśli później zdecydujesz się na ponowną instalację aplikacji, te klucze podadzą informacje o aplikacji po jej zainstalowaniu. Ponadto niektórzy programiści mogą pozostawić te klucze na wypadek, gdyby zdecydowali się Państwo ponownie zainstalować aplikację. Jeśli programista użył kluczy rejestru do zapisania dostosowań, może je tam pozostawić, aby po ponownej instalacji aplikacji wszystkie dostosowania pozostały. W wielkim układzie rzeczy klucze rejestru zajmują tylko kilka bajtów.

Czy chcesz usunąć klucze? To zależy. Rejestr systemu Windows jest niebezpiecznym miejscem do włamania. Możesz przypadkowo złamać system. Pozostawienie obcych kluczy nie zaszkodzi systemowi. Niektórzy ludzie powiedzą, że czyszczenie / defraggowanie rejestru przyspieszy twój system, ale zostało to wielokrotnie udowodnione.

Jeśli naprawdę chcesz pozbyć się tych programów, istnieje kilka narzędzi do deinstalacji, które usuwają każdy ślad programu. Te programy będą oglądać instalator innego programu i rejestrować wszystkie działania wykonane w systemie plików i rejestrze, a następnie całkowicie usunąć te działania. Jedną z kwestii związanych z tymi narzędziami jest to, że mogą usuwać rzeczy, które chcesz zachować.

Czy masz coś do dodania do wyjaśnienia? Dźwięk w komentarzach. Chcesz przeczytać więcej odpowiedzi od innych użytkowników Stack Exchange, którzy znają się na technologii? Sprawdź cały wątek dyskusji tutaj.