Homepage » come » Perché le normali disinstallazioni del software non riescono a rimuovere tutti i valori rilevanti dal registro?

    Perché le normali disinstallazioni del software non riescono a rimuovere tutti i valori rilevanti dal registro?

    Quando si disinstalla un programma, è ragionevole aspettarsi che tutte le tracce vengano rimosse dal sistema, ma spesso non è così. Perché? Il post di Q & A di SuperUser di oggi ha le risposte alla domanda di un lettore curioso.

    La sessione di domande e risposte di oggi ci viene fornita per gentile concessione di SuperUser, una suddivisione di Stack Exchange, un raggruppamento di siti Web di domande e risposte basato sulla comunità.

    Schermata per gentile concessione di wandersick (Flickr).

    La domanda

    Il lettore SuperUser Mark Boulder vuole sapere perché alcuni valori di registro rimangono sempre dopo una normale disinstallazione del software:

    Espansione sull'argomento SuperUser Come rimuovo le tracce residue di software disinstallato dal registro, perché ogni volta che disinstalla un programma e poi lo cerco tramite RegEdit, è ancora lì?

    Perché la maggior parte delle applicazioni Windows è così intenzionata a lasciare minuscole tracce di se stesse nel registro? La colpa è di Windows o degli sviluppatori?

    Perché i valori di registro di solito sono "lasciati indietro" dopo la normale disinstallazione del software?

    La risposta

    I collaboratori di SuperUser Lukas Rieger e Keltari hanno la risposta per noi. Primo, Lukas Rieger:

    Perché è impossibile. Il registro ha più nodi radice ma solo due interessanti: LocalMachine e CurrentUser. Normalmente, l'installazione scrive valori in LocalMachine e il programma in esecuzione scrive solo in CurrentUser (in realtà, a meno che l'installazione non funzioni con le autorizzazioni, il programma in esecuzione non può scrivere in LocalMachine).

    Mantenendo gli avanzi in LocalMachine è la pigrizia (come sottolineato dalle altre risposte), non è possibile pulire la parte CurrentUser.

    Se un programma è installato per macchina (la maggior parte sono) e più utenti lo usano, cosa dovrebbe fare il programma di disinstallazione? Potrebbe rimuovere in modo sicuro le impostazioni dell'utente dell'account corrente, ma l'account corrente potrebbe non essere il tuo account. Questo accade se hai avviato il programma di disinstallazione da un account non amministratore e poi hai inserito le credenziali di un account amministratore, ora l'installazione è in esecuzione con quell'account, non il primo.

    E gli altri utenti? Potrebbe tentare di enumerare tutti gli utenti, ma le loro chiavi di registro potrebbero non essere caricate (Windows è pigro e carica solo le cose di cui ha bisogno).

    Ma non dovresti nemmeno provarlo. Se si utilizzano i profili di roaming (ad esempio i servizi terminal) e quindi si eliminano tutte le impostazioni durante la disinstallazione, si potrebbe davvero rovinare ed eliminare cose che sono ancora in uso. Un terminal server è fondamentalmente una macchina Windows in cui più utenti si collegano contemporaneamente e utilizzano le applicazioni. Supponiamo tu abbia due terminal server che eseguono un'applicazione. Si disinstalla l'applicazione su TS1, ora tutte le impostazioni per tutti gli utenti sono passate su TS2 perché si dispone di profili comuni. Spiacenti.

    Lo stesso vale anche per i file nelle directory per utente. Nella configurazione dei programmi della mia azienda, elimino le cose per macchina, ma non tocchino le cose per utente, nemmeno quelle dell'utente che sta attualmente eseguendo la configurazione.

    Seguito dalla risposta di Keltari:

    Ci sono molte ragioni per cui questo è il caso, tuttavia, non è colpa di Microsoft o del sistema operativo Windows.

    Di seguito è riportato un elenco di alcuni casi e motivi per cui le voci del Registro di sistema vengono lasciate:

    Programmazione errata - Lo sviluppatore non ha scritto correttamente il programma di disinstallazione dell'applicazione e le voci del registro sono state lasciate. Oltre a ciò, il programma di disinstallazione potrebbe non avere / utilizzare le autorizzazioni appropriate per rimuovere le voci del registro. Potrebbe anche darsi che ci siano più applicazioni che usano quelle chiavi. Ad esempio, due applicazioni dello stesso sviluppatore che scrivono sulle stesse chiavi.

    Sinistra Scopo - Come un commento menzionato, queste voci potrebbero essere state lasciate apposta. Alcune applicazioni hanno un periodo di prova e, dopo quel periodo, è possibile scegliere di rimuovere l'applicazione. Se si sceglie di reinstallare l'applicazione in un secondo momento, tali chiavi forniscono le informazioni sull'applicazione al momento dell'installazione. Inoltre, alcuni sviluppatori potrebbero scegliere di lasciare quelle chiavi nel caso in cui decidessi di reinstallare l'applicazione. Se lo sviluppatore ha utilizzato le chiavi del Registro di sistema per memorizzare le personalizzazioni, potrebbe lasciarle lì in modo che quando si reinstalla l'applicazione, tutte le personalizzazioni persistono. Nel grande schema di cose, le chiavi di registro occupano solo pochi byte.

    Dovresti rimuovere le chiavi? Dipende. Il registro di Windows è un posto pericoloso dove fare casino. Puoi inavvertitamente interrompere il tuo sistema. Lasciare le chiavi estranee non danneggerà il sistema. Alcune persone diranno che la pulizia / deframmentazione del registro accelererà il sistema, ma ciò è stato dimostrato falso ripetutamente.

    Se si vuole veramente sbarazzarsi di questi programmi, ci sono alcuni strumenti di disinstallazione che possono rimuovere ogni traccia di un programma. Questi programmi guarderanno l'installer di un altro programma e registreranno tutte le azioni eseguite sul file system e sul registro, quindi rimuoveranno completamente tali azioni. Un problema con questi strumenti è che è possibile che possano rimuovere le cose che si potrebbero voler conservare.


    Hai qualcosa da aggiungere alla spiegazione? Audio disattivato nei commenti. Vuoi leggere più risposte dagli altri utenti di Stack Exchange esperti di tecnologia? Controlla la discussione completa qui.