10Aug

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

Podczas odinstalowywania programu jest "rozsądnym" oczekiwaniem, że wszystkie jego ślady zostaną usunięte z systemu, ale często tak nie jest. Dlaczego? Dzisiejszy post SuperUser Q & A ma odpowiedzi na ciekawe pytanie czytelnika.

Dzisiejsze pytanie &Sesja odpowiedzi przychodzi do nas dzięki uprzejmości SuperUser - poddziału Stack Exchange, opartego na społecznościach grupy Q & A.

Zrzut ekranu dzięki uprzejmości wędrowca( Flickr).

Pytanie Czytnik SuperDser

Mark Boulder chce wiedzieć, dlaczego niektóre wartości rejestru pozostają zawsze po normalnej dezinstalacji oprogramowania:

Rozszerzanie tematu SuperUser Jak usunąć pozostałości rejestru z odinstalowanego oprogramowania z rejestru, dlaczego tak jest za każdym razem, gdy odinstalowujęprogram, a następnie sprawdzić go za pośrednictwem 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 normalnym odinstalowaniu oprogramowania?

Odpowiedź Odpowiedzi dla

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 do 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).

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

Jeśli program jest zainstalowany na maszynę( z której większość jest) i wielu użytkowników jej używa, 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.

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 również 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.

Następnie odpowiedź od Keltari:

Istnieje wiele powodów, dla których tak jest, 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 pozostały:

Złe programowanie - Programista nie napisał poprawnie dezinstalatora aplikacji, a wpisy rejestru zostały pozostawione. 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.

Left On Purpose - 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 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.