If-Koubou

Mengapa Peranti Lunak Biasa Tidak Dicopot Gagal Menghapus Semua Nilai Relevan dari Registry?

Mengapa Peranti Lunak Biasa Tidak Dicopot Gagal Menghapus Semua Nilai Relevan dari Registry? (Bagaimana caranya)

Ketika Anda menghapus sebuah program, itu adalah harapan "wajar" bahwa semua jejak itu akan dihapus dari sistem Anda, tetapi itu sering kali tidak terjadi. Mengapa demikian? Posting SuperUser Q & A saat ini memiliki jawaban atas pertanyaan pembaca yang ingin tahu.

Sesi Tanya & Jawab hari ini hadir untuk memberi kami hak milik SuperUser-sub divisi Stack Exchange, pengelompokan situs web Q & A berbasis komunitas.

Screenshot courtesy of wandersick (Flickr).

Pertanyaan

Pembaca SuperUser Mark Boulder ingin tahu mengapa beberapa nilai registri selalu tetap setelah penginstalan perangkat lunak normal:

Memperluas topik SuperUser Bagaimana cara menghapus sisa jejak perangkat lunak yang dihapus dari registri, mengapa setiap kali saya menghapus program dan kemudian mencari tahu melalui RegEdit, apakah masih ada?

Mengapa sebagian besar aplikasi Windows sangat ingin meninggalkan jejak kecil diri mereka di registri? Apakah kesalahan terletak pada Windows atau dengan pengembang?

Mengapa nilai registri biasanya "tertinggal" setelah biasanya mencopot pemasangan perangkat lunak?

Jawabannya

Kontributor SuperUser Lukas Rieger dan Keltari memiliki jawabannya untuk kami. Pertama, Lukas Rieger:

Karena itu tidak mungkin. Registri memiliki beberapa node root tetapi hanya dua yang menarik: LocalMachine dan CurrentUser. Biasanya, pengaturan menulis nilai ke LocalMachine, dan program yang sedang berjalan hanya menulis ke CurrentUser (sebenarnya, kecuali setup mengacaukan izin, program yang sedang berjalan tidak dapat menulis ke LocalMachine).

Sambil menyimpan sisa makanan di LocalMachine adalah kemalasan (seperti yang ditunjukkan oleh jawaban lainnya), tidak mungkin untuk membersihkan bagian CurrentUser.

Jika sebuah program diinstal per mesin (yang sebagian besar) dan banyak pengguna menggunakannya, apa yang harus dilakukan oleh uninstaller? Itu bisa dengan aman menghapus pengaturan pengguna dari akun saat ini, tetapi akun saat ini mungkin bukan akun Anda. Ini terjadi jika Anda memulai pencopot pemasangan dari akun non-admin lalu memasukkan kredensial akun admin, penyiapan sekarang berjalan di bawah akun itu, bukan yang pertama.

Bagaimana dengan pengguna lain? Ini bisa mencoba untuk menghitung semua pengguna, tetapi kunci registri mereka mungkin tidak dimuat (Windows malas dan hanya memuat hal-hal yang dibutuhkannya).

Tetapi Anda seharusnya tidak mencobanya. Jika Anda menggunakan profil roaming (yaitu layanan terminal) dan kemudian menghapus semua pengaturan pada uninstall, Anda benar-benar dapat mengacaukan dan menghapus hal-hal yang sebenarnya masih digunakan. Terminal server pada dasarnya adalah satu mesin Windows di mana beberapa pengguna log-in pada saat yang sama dan menggunakan aplikasi. Katakanlah Anda memiliki dua server terminal yang menjalankan satu aplikasi. Anda menghapus aplikasi di TS1, sekarang semua pengaturan untuk semua pengguna hilang di TS2 karena Anda memiliki profil roaming. Ups.

Hal yang sama juga berlaku untuk file di direktori per-pengguna. Dalam pengaturan program perusahaan saya, saya menghapus barang-barang per-mesin tetapi tidak menyentuh barang-barang per-pengguna, bahkan tidak dari pengguna saat ini menjalankan pengaturan.

Diikuti oleh jawaban dari Keltari:

Ada banyak alasan mengapa hal ini terjadi, tetapi bukan karena kesalahan Microsoft atau sistem operasi Windows.

Berikut ini adalah daftar beberapa kasus dan alasan mengapa entri registri tertinggal:

Pemrograman Buruk - Pengembang tidak menulis uninstaller aplikasi dengan benar dan entri registri tertinggal. Selain itu, uninstaller mungkin tidak memiliki / menggunakan izin yang tepat untuk menghapus entri registri. Bisa juga ada lebih dari satu aplikasi yang menggunakan kunci tersebut. Misalnya, dua aplikasi dari pengembang yang sama yang menulis ke kunci yang sama.

Waktu Tujuan Kiri - Seperti yang dikomentari oleh satu komentar, entri-entri ini bisa saja ditinggalkan dengan sengaja. Beberapa aplikasi memiliki masa percobaan dan, setelah periode itu, Anda mungkin memilih untuk menghapus aplikasi. Jika Anda memilih untuk menginstal ulang aplikasi di lain waktu, kunci tersebut akan memberikan informasi aplikasi saat diinstal. Selain itu, beberapa pengembang mungkin memilih untuk meninggalkan kunci tersebut jika Anda memilih untuk menginstal ulang aplikasi. Jika pengembang menggunakan kunci registri untuk menyimpan penyesuaian Anda, mereka mungkin meninggalkannya di sana sehingga ketika Anda menginstal ulang aplikasi, semua kustomisasi Anda tetap ada. Dalam skema besar, kunci registri hanya mengambil beberapa byte.

Haruskah Anda menghapus kunci? Itu tergantung. Registri Windows adalah tempat yang berbahaya untuk dipusingkan. Anda dapat secara tidak sengaja merusak sistem Anda. Membiarkan kunci asing tidak akan melukai sistem. Beberapa orang akan mengatakan pembersihan / defragging registri akan mempercepat sistem Anda, tetapi itu terbukti salah berulang kali.

Jika Anda benar-benar ingin menyingkirkan program-program tersebut, ada beberapa alat uninstaller yang dapat menghapus setiap jejak program. Program-program ini akan mengawasi penginstal program lain dan merekam semua tindakan yang dilakukan ke sistem file dan registri, lalu sepenuhnya menghapus tindakan tersebut. Salah satu masalah dengan alat ini adalah mungkin mereka dapat menghapus hal-hal yang mungkin ingin Anda simpan.

Memiliki sesuatu untuk ditambahkan ke penjelasan? Bicaralah di komentar. Ingin membaca lebih banyak jawaban dari pengguna Stack Exchange yang paham teknologi lainnya? Lihat diskusi lengkap di sini.