Γιατί αποτυγχάνουν να απομακρυνθούν όλες οι σχετικές τιμές από το μητρώο;
Όταν απεγκαθιστάτε ένα πρόγραμμα, είναι μια "εύλογη" προσδοκία ότι όλα τα ίχνη του θα διαγραφούν από το σύστημά σας, αλλά αυτό συχνά δεν συμβαίνει. Γιατί αυτό? Η σημερινή δημοσίευση Q & A της SuperUser έχει τις απαντήσεις σε μια ερώτηση περίεργου αναγνώστη.
Η σημερινή συνάντηση ερωτήσεων και απαντήσεων έρχεται σε επαφή με το SuperUser - μια υποδιαίρεση του Stack Exchange, μια κοινότητα που κατευθύνεται από τους ιστότοπους ερωτήσεων & απαντήσεων.
Στιγμιότυπο οθόνης από wandersick (Flickr).
Το ερώτημα
Ο αναγνώστης SuperUser Mark Boulder θέλει να μάθει γιατί κάποιες τιμές μητρώου παραμένουν πάντα μετά από μια κανονική απεγκατάσταση του λογισμικού:
Επέκταση του θέματος του SuperUser Πώς μπορώ να καταργήσω τα υπολειπόμενα ίχνη του απεγκαταστημένου λογισμικού από το μητρώο, γιατί κάθε φορά που καταργώ την εγκατάσταση ενός προγράμματος και στη συνέχεια το ψάχνω αργότερα μέσω του RegEdit, εξακολουθεί να υπάρχει?
Γιατί η πλειοψηφία των εφαρμογών των Windows σκοπεύει να αφήσει μικροσκοπικά μικρά ίχνη από τον εαυτό τους στο μητρώο; Η βλάβη έγκειται στα Windows ή στους προγραμματιστές?
Γιατί οι τιμές μητρώου συνήθως «παραμένουν πίσω» μετά την κανονική απεγκατάσταση του λογισμικού?
Η απάντηση
Οι συνεισφέροντες του SuperUser Lukas Rieger και Keltari έχουν την απάντηση για εμάς. Αρχικά, ο Λούκας Ρίγκερ:
Επειδή είναι αδύνατο. Το μητρώο έχει πολλούς κόμβους ρίζας αλλά μόνο δύο ενδιαφέροντα: LocalMachine και CurrentUser. Κανονικά, η εγκατάσταση συντάσσει τιμές στην LocalMachine και το τρέχον πρόγραμμα γράφει μόνο στο CurrentUser (στην πραγματικότητα, εκτός και αν τα βήματα εγκατάστασης έχουν τα δικαιώματα, το τρέχον πρόγραμμα δεν μπορεί να γράψει στο LocalMachine).
Κατά τη διατήρηση των υπολειμμάτων στο LocalMachine είναι τεμπελιά (όπως υπογραμμίζεται από τις άλλες απαντήσεις), δεν είναι δυνατό να καθαρίσετε το τμήμα CurrentUser.
Εάν ένα πρόγραμμα έχει εγκατασταθεί σε κάθε μηχάνημα (το οποίο είναι το μεγαλύτερο μέρος) και πολλοί χρήστες το χρησιμοποιούν, τι θα έπρεπε να κάνει το πρόγραμμα απεγκατάστασης; Θα μπορούσε ασφαλώς να καταργήσει τις ρυθμίσεις χρήστη του τρέχοντος λογαριασμού, αλλά ο τρέχων λογαριασμός ίσως να μην είναι ο λογαριασμός σας. Αυτό συμβαίνει αν ξεκινήσατε το πρόγραμμα απεγκατάστασης από έναν λογαριασμό που δεν ανήκει στη διοίκηση και στη συνέχεια πληκτρολογήσατε τα διαπιστευτήρια ενός λογαριασμού διαχειριστή, η εγκατάσταση εκτελείται τώρα κάτω από αυτόν τον λογαριασμό και όχι την πρώτη.
Τι γίνεται με τους άλλους χρήστες; Θα μπορούσε να προσπαθήσει να απαριθμήσει όλους τους χρήστες, αλλά τα κλειδιά μητρώου τους ενδέχεται να μην φορτωθούν (τα Windows είναι τεμπέλης και φορτώνουν μόνο τα πράγματα που χρειάζονται).
Αλλά δεν πρέπει να το δοκιμάσετε. Αν χρησιμοποιείτε προφίλ περιαγωγής (δηλ. Υπηρεσίες τερματικών) και στη συνέχεια διαγράφετε όλες τις ρυθμίσεις κατά την απεγκατάσταση, θα μπορούσατε πραγματικά να χρεώσετε και να διαγράψετε πράγματα που είναι ακόμα ακόμα σε χρήση. Ένας διακομιστής τερματικού είναι βασικά ένα μηχάνημα των Windows όπου πολλαπλοί χρήστες συνδέονται ταυτόχρονα και χρησιμοποιούν εφαρμογές. Πείτε ότι έχετε δύο διακομιστές τερματικών που εκτελούν μια εφαρμογή. Καταργείτε την εγκατάσταση της εφαρμογής στο TS1, τώρα όλες οι ρυθμίσεις για όλους τους χρήστες έχουν πάει στο TS2 επειδή έχετε προφίλ περιαγωγής. Ωχ.
Το ίδιο ισχύει και για τα αρχεία στους καταλόγους ανά χρήστη. Κατά τη ρύθμιση των προγραμμάτων της εταιρείας μου, διαγράφω τα αρχεία ανά μηχανή, αλλά μην αγγίζετε τα στοιχεία ανά χρήστη, ούτε καν από το χρήστη που τρέχει αυτήν τη στιγμή την εγκατάσταση.
Ακολουθούμενη από την απάντηση του Keltari:
Υπάρχουν πολλοί λόγοι για τους οποίους αυτό συμβαίνει, ωστόσο, δεν είναι το σφάλμα της Microsoft ή του λειτουργικού συστήματος των Windows.
Ακολουθεί μια λίστα με ορισμένες περιπτώσεις και τους λόγους για τους οποίους οι καταχωρήσεις μητρώου έχουν μείνει πίσω:
Ο κακός προγραμματισμός - Ο προγραμματιστής δεν έγραψε σωστά το πρόγραμμα κατάργησης εγκατάστασης της εφαρμογής και οι καταχωρήσεις μητρώου έχουν μείνει πίσω. Επιπλέον, το πρόγραμμα απεγκατάστασης ενδέχεται να μην έχει / χρησιμοποιήσει τα κατάλληλα δικαιώματα για να καταργήσει τις καταχωρήσεις μητρώου. Θα μπορούσε επίσης να είναι ότι υπάρχουν περισσότερες από μία εφαρμογές που χρησιμοποιούν αυτά τα κλειδιά. Για παράδειγμα, δύο εφαρμογές από τον ίδιο προγραμματιστή που γράφουν στα ίδια κλειδιά.
Αριστερά με σκοπό - Όπως αναφέρθηκε σε ένα σχόλιο, αυτές οι καταχωρίσεις θα μπορούσαν να έχουν μείνει σκόπιμες. Ορισμένες εφαρμογές έχουν δοκιμαστική περίοδο και, μετά από αυτή την περίοδο, μπορείτε να επιλέξετε να καταργήσετε την εφαρμογή. Εάν επιλέξετε να εγκαταστήσετε ξανά την εφαρμογή αργότερα, αυτά τα πλήκτρα δίνουν στην εφαρμογή πληροφορίες σχετικά με το πότε εγκαταστάθηκε. Εκτός αυτού, ορισμένοι προγραμματιστές ενδέχεται να επιλέξουν να αφήσουν αυτά τα κλειδιά σε περίπτωση που επιλέξετε να επανεγκαταστήσετε την εφαρμογή. Εάν ο προγραμματιστής χρησιμοποίησε κλειδιά μητρώου για να αποθηκεύσει τις προσαρμογές σας, μπορεί να τους αφήσει εκεί, ώστε όταν εγκαταστήσετε ξανά την εφαρμογή, όλες οι προσαρμογές σας παραμένουν. Στο μεγάλο σχέδιο των πραγμάτων, τα κλειδιά μητρώου απορροφούν μόνο μερικά byte.
Πρέπει να αφαιρέσετε τα πλήκτρα; Αυτο εξαρταται. Το μητρώο των Windows είναι ένα επικίνδυνο μέρος για να μπλοκάρει μέσα. Μπορείτε να σπάσετε κατά λάθος το σύστημά σας. Η έξοδος από τα εξωτερικά πλήκτρα δεν θα βλάψει το σύστημα. Μερικοί άνθρωποι θα πουν καθαρισμός / ανασυγκρότηση του μητρώου θα επιταχύνει το σύστημά σας, αλλά αυτό έχει αποδειχθεί ψευδές επανειλημμένα.
Εάν θέλετε πραγματικά να απαλλαγείτε από αυτά τα προγράμματα, υπάρχουν ορισμένα εργαλεία απεγκατάστασης που μπορούν να αφαιρέσουν κάθε ίχνος ενός προγράμματος. Αυτά τα προγράμματα θα παρακολουθήσουν το πρόγραμμα εγκατάστασης άλλου προγράμματος και θα καταγράψουν όλες τις ενέργειες που έγιναν στο σύστημα αρχείων και το μητρώο, και στη συνέχεια θα καταργηθούν εντελώς αυτές οι ενέργειες. Ένα ζήτημα με αυτά τα εργαλεία είναι ότι είναι πιθανό να μπορούν να καταργήσουν τα πράγματα που ίσως θέλετε να κρατήσετε.
Έχετε κάτι να προσθέσετε στην εξήγηση; Απενεργοποιήστε τα σχόλια. Θέλετε να διαβάσετε περισσότερες απαντήσεις από άλλους τεχνολογικούς χρήστες Stack Exchange; Δείτε το πλήρες νήμα συζήτησης εδώ.