Di mana Windows menyimpan file MSI untuk dihapus?


25

Saya mencoba mencari tahu bagaimana Windows (XP hingga 7) menangani instalasi dan penghapusan file MSI. Saya muncul dalam situasi di mana Pemasang Windows tidak dapat menghapus instalan karena tidak ada file MSI asli, yang membuat saya percaya bahwa ia menyimpan salinan semua paket MSI yang diinstal di suatu tempat. Dimana?

Saya punya beberapa teori.

  1. Itu mengharapkannya untuk berada di folder yang sama seperti itu diinstal dari. Kunci registri di HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstallmemang menunjuk ke folder instalasi asli, dan pesan kesalahan ketika file MSI hilang sering menunjuk ini. Menghapus file MSI dari folder ini tidak menghalangi proses penghapusan instalasi, jadi saya menolak teori ini.

  2. C:\Windows\Installer. Folder ini sebenarnya berisi banyak file MSI yang tampaknya acak. Tetapi daftar ini tidak lengkap. Saya menemukan entri dalam kunci registri yang disebutkan dalam 1) yang tidak memiliki salinan MSI di folder ini.

Jadi bagaimana cara kerjanya? Bagaimana windows installer dapat menghapus aplikasi yang terinstal MSI meskipun MSI tidak dalam 1) dan tidak dalam 2)?


Windows tidak selalu menyimpannya. Ada banyak cara bagi pengguna untuk memberitahu Windows untuk benar-benar menghapus cache dari file-file ini. Jika Anda memiliki perangkat lunak yang tidak dapat dihapus instalannya, itu berarti pengembang membuat installer yang salah. Lokasi akan berbeda antara Windows XP (mengapa Anda khawatir tentang sistem operasi yang tidak didukung) dan Windows 7 dan / atau Windows 8.
Ramhound

Jawaban:


44

Ternyata itu berfungsi seperti ini (Pada Windows 7, saya tidak tahu tentang XP dan OS lainnya):

Ketika pengguna menginstal beberapa aplikasi, Windows melakukan hal berikut:

1) Membuat kunci registri

HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Uninstall \ [GUID ProductId]

untuk aplikasi ini.

Jika Anda memiliki akses ke file msi asli dari penginstal aplikasi Anda, Anda dapat menemukan [PANDUAN ProductID] dengan membuka file msi di orca.exe dan mengklik "Properti" di sebelah kiri di orca, dan mencari "ProductCode" baris di sebelah kanan. Jika Anda tidak memiliki akses ke file * .msi asli, Anda bisa mencari kunci registri HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Uninstall untuk nama aplikasi.

Jika Anda ingin menghapus aplikasi Anda (yang menolak untuk menghapus instalan misalnya) dari daftar aplikasi yang diinstal di Control Panel, Anda dapat menghapus entri dari kunci Uninstall ini. Itu pasti akan hilang dari daftar di panel kontrol, tetapi Windows masih akan mengingatnya. Misalnya, jika Anda mencoba menginstal versi berikutnya dari aplikasi yang sama, Pemasang mungkin masih bersikeras mencopot pemasangan versi sebelumnya. Lihat item 2 untuk itu.

2) Windows menyalin file * .msi asli ke folder C: \ Windows \ Installer dan menamainya menjadi nama acak (mempertahankan ekstensi .msi). Windows juga membuat kunci dalam registri di HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\[InternalUserId]\Products\[some random guid-like sequence of chars identifying to windows your installation]\InstallProperties.ValueName "LocalPackage" di kunci reg ini akan mengarah ke file msi yang diubah namanya. Untuk menemukan file di C: \ windows \ Installer Anda dapat menavigasi ke folder ini di Windows explorer, alihkan ke tampilan Detail, buat kolom "Subjek" terlihat dan Anda akan melihat semua nnnnnnnn.m.msi melihat nama produk yang sesuai.


6
Saya ingin memilih Anda dua kali untuk rahasia tersembunyi - make column "Subject" visible and you will see for all nnnnnnnn.msi fies their corresponding name of product.. Windows adalah sistem operasi yang misterius: P
RBT

3) Langkah 3 diperlukan bagi saya. Saya harus menyalin file 5188bfc6.msi (hex # .msi) dan mengganti nama menjadi nama file asli MyApp.msi, sebelum uninstaller akan menerima file. Setelah uninstall ini bekerja dengan baik.
Joe B
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.