Când dezinstalați un program, este o așteptare "rezonabilă" că toate urmele din acesta vor fi eliminate din sistemul dvs., dar acest lucru nu este adesea cazul. De ce este asta? Postul de astăzi SuperUser Q & A are răspunsurile la o întrebare curioasă a cititorului.
Sesiunea de întrebări și răspunsuri din ziua de astăzi vine de la amabilitatea SuperUser - o subdiviziune a Stack Exchange, o grupare bazată pe comunitate a site-urilor Q & A.
Captură de imagine prin amabilitatea lui wandersick (Flickr).
Cititorul SuperUser Mark Boulder vrea să știe de ce unele valori ale registrului rămân întotdeauna după dezinstalarea software-ului obișnuit:
Extinderea subiectului SuperUser Cum pot elimina urmele reziduale ale software-ului dezinstalat din registru, de ce este că de fiecare dată când dezinstalez un program și apoi îl caut mai târziu prin RegEdit, acesta este încă acolo?
De ce majoritatea aplicațiilor Windows intenționează să lase niște urme minore în registru? Se întâmplă vina cu Windows sau cu dezvoltatorii?
De ce valorile de registru sunt de obicei "lăsate în urmă" după dezinstalarea software-ului?
Contribuitorii SuperUser Lukas Rieger și Keltari au răspunsul pentru noi. În primul rând, Lukas Rieger:
Pentru că este imposibil. Registrul are mai multe noduri rădăcină, dar numai două interesante: LocalMachine și CurrentUser. În mod normal, setarea scrie valori în LocalMachine, iar programul care rulează scrie numai în CurrentUser (de fapt, cu excepția cazului în care setările au permisiuni, programul care rulează nu poate scrie în LocalMachine).
În timp ce păstrați resturile în LocalMachine este lenea (după cum a subliniat și celelalte răspunsuri), nu este posibilă curățarea părții CurrentUser.
Dacă un program este instalat pe o mașină (care este cea mai mare parte) și pe care o folosesc mai mulți utilizatori, ce ar trebui să facă programul de dezinstalare? Ar putea elimina în siguranță setările de utilizator ale contului curent, dar este posibil ca contul curent să nu fie contul dvs. Acest lucru se întâmplă dacă ați pornit programul de dezinstalare dintr-un cont non-administrator și apoi ați introdus datele de conectare ale unui cont de administrator, configurarea fiind executată acum în contul respectiv, și nu în primul cont.
Ce-i cu ceilalți utilizatori? S-ar putea încerca să enumere toți utilizatorii, dar cheile lor de registry ar putea să nu fie încărcate (Windows este leneș și doar încarcă lucrurile de care are nevoie).
Dar nici nu ar trebui să încerci asta. Dacă utilizați profiluri de roaming (adică servicii de terminale) și apoi ștergeți toate setările de dezinstalare, ați putea să vă faceți rău și să ștergeți lucruri care sunt încă în uz. Un server terminal este practic o mașină Windows în care mai mulți utilizatori se conectează în același timp și utilizează aplicații. Spuneți că aveți două servere terminale care rulează o aplicație. Dezinstalați aplicația pe TS1, acum toate setările pentru toți utilizatorii au dispărut pe TS2 deoarece aveți profiluri în roaming. Hopa.
Același lucru se aplică și fișierelor din directoarele per-utilizator. În configurarea programelor companiei mele, șterg chestiile per-mașină, dar nu atingeți chestiile per-utilizator, nici măcar pe utilizatorul care execută configurarea.
Urmat de răspunsul dat de Keltari:
Există multe motive pentru care acest lucru este cazul, însă nu este o vină a Microsoft sau a sistemului de operare Windows.
Următoarea este o listă a câtorva cazuri și motivele pentru care înregistrările de registry sunt lăsate în urmă:
Programarea incorectă - dezvoltatorul nu a scris dezinstalarea aplicației în mod corespunzător și înregistrările de registry sunt lăsate în urmă. În plus, este posibil ca programul de dezinstalare să nu aibă / să utilizeze permisiunile corespunzătoare pentru a elimina intrările din registry. Ar putea fi, de asemenea, că există mai multe aplicații care utilizează acele chei. De exemplu, două aplicații de la același dezvoltator care scriu aceleași chei.
Stânga pe scop - După cum a menționat un comentariu, aceste înscrieri ar fi putut fi lăsate în vreun scop. Unele aplicații au o perioadă de încercare și, după acea perioadă, puteți alege să eliminați aplicația. Dacă alegeți să reinstalați aplicația mai târziu, acele chei furnizează informații despre aplicație când a fost instalată. În plus, unii dezvoltatori ar putea alege să părăsească aceste chei în cazul în care alegeți să reinstalați aplicația. Dacă dezvoltatorul utilizează chei de registru pentru a stoca personalizările dvs., le-ar putea lăsa acolo, astfel încât atunci când reinstalați aplicația, toate personalizările dvs. persistă. În marea schemă a lucrurilor, cheile de registru ocupă doar câțiva octeți.
Ar trebui să scoateți cheile? Depinde. Registrul Windows este un loc periculos pentru a vă mizeria înăuntru. Puteți să vă rupeți din greșeală sistemul. Lăsarea cheilor externe nu va afecta sistemul. Unii oameni vor spune că curățarea / defragmentarea regiștrilor va accelera sistemul dvs., dar acest lucru a fost dovedit în mod repetat fals.
Dacă chiar vrei să scapi de aceste programe, există niște unelte de dezinstalare care pot elimina fiecare urmă a unui program. Aceste programe vor viziona programul de instalare al unui alt program și vor înregistra toate acțiunile efectuate la sistemul de fișiere și registru, apoi vor elimina complet aceste acțiuni. O problemă cu aceste instrumente este că este posibil să elimine lucrurile pe care ați putea dori să le păstrați.
Aveți ceva de adăugat la explicație? Sunați în comentarii. Doriți să citiți mai multe răspunsuri de la alți utilizatori de tehnologie Stack Exchange? Check out discuția completă aici.