Główna » jak » 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?

    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, opartego na społecznościach grupowania witryn 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, wciąż tam jest?

    Dlaczego większość aplikacji systemu Windows jest tak skoncentrowana na pozostawianiu niewielkich śladów w rejestrze? Czy błąd 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 do LocalMachine, a działający program zapisuje tylko w CurrentUser (właściwie, chyba że konfiguracja nie działa z uprawnieniami, uruchomiony program nie może zapisać na LocalMachine).

    Pozostawiając resztki 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 obecnego konta, ale bieżące konto może nie być Twoim kontem. Dzieje się tak, jeśli uruchomiłeś dezinstalator z konta administratora, 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 aktualnie 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 dla poszczególnych użytkowników. W konfiguracji programów mojej firmy usuwam rzeczy związane z konkretną maszyną, ale nie dotykam rzeczy, z których korzysta użytkownik, nawet tych, którzy 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 pozostały:

    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ą informację o aplikacji, kiedy została zainstalowana. Ponadto niektórzy programiści mogą zostawić te klucze na wypadek, gdyby zdecydowali się Państwo ponownie zainstalować aplikację. Jeśli programista używał kluczy rejestru do zapisania dostosowań, może pozostawić je w tym miejscu, aby po ponownej instalacji aplikacji wszystkie dostosowania pozostały. W wielkim systemie 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. Programy te 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. Jednym z problemów z tymi narzędziami jest to, że mogą one usunąć 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.