Windowsは、アンインストールのためにMSIファイルをどこに保存しますか?


25

Windows(XP〜7)がMSIファイルのインストールとアンインストールをどのように処理しているかを把握しようとしています。元のMSIファイルが欠落しているためにWindowsインストーラーがアンインストールできない状況になりました。これにより、インストールされたすべてのMSIパッケージのコピーがどこかに格納されていると思われます。どこ?

いくつかの理論があります。

  1. それがインストールされたのと同じフォルダーに存在することを期待します。レジストリキーHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstallは元のインストールフォルダーを指し、MSIファイルが見つからない場合のエラーメッセージはしばしばこれを指します。ただし、このフォルダーからMSIファイルを削除してもアンインストールプロセスは妨げられないため、この理論は拒否しました。

  2. C:\Windows\Installer。このフォルダには、一見ランダムに見えるMSIファイルの束が実際に含まれています。しかし、このリストは不完全です。このフォルダにMSIコピーがない1)に記載されているレジストリキーにエントリがあります。

では、これはどのように機能しますか?MSIが1)と2)にない場合でも、WindowsインストーラーはどのようにしてMSIがインストールしたアプリケーションをアンインストールできますか?


Windowsは常にそれを保持するとは限りません。ユーザーがWindowsにこれらのファイルのキャッシュを実際にクリアするように指示する方法はたくさんあります。アンインストールできないソフトウェアがある場合は、開発者がインストーラーを誤って作成したことを意味します。場所は、Windows XP(サポートされていないオペレーティングシステムを心配する理由)とWindows 7および/またはWindows 8で
異なり

回答:


44

どうやらこれは次のように動作します(Windows 7では、XPや他のOSについては知りません):

ユーザーがアプリをインストールすると、Windowsは次のことを行います。

1)レジストリキーを作成します

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

このアプリの。

アプリのインストーラーの元のmsiファイルにアクセスできる場合は、orca.exeでmsiファイルを開き、orcaの左側にある[プロパティ]をクリックして[ProductCode]を検索することにより、[ProductID GUID]を見つけることができます。右側の行。元の* .msiファイルにアクセスできない場合は、レジストリキーHKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Uninstallでアプリの名前を検索できます。

コントロールパネルのインストール済みアプリのリストからアプリ(たとえば、アンインストールを拒否する)を削除する場合は、このアンインストールキーからエントリを削除できます。コントロールパネルのリストからは確実に消えますが、Windowsはそれを記憶しています。たとえば、同じアプリの次のバージョンをインストールしようとすると、インストーラーは以前のバージョンのアンインストールを要求する場合があります。それについては項目2を参照してください。

2)Windowsは元の* .msiファイルをフォルダーC:\ Windows \ Installerにコピーし、名前をランダムな名前に変更します(ただし、拡張子は.epsにします)。Windowsは、HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\[InternalUserId]\Products\[some random guid-like sequence of chars identifying to windows your installation]\InstallProperties.このregキーのValueName "LocalPackage"のレジストリにキーを作成し、名前が変更されたmsiファイルを指します。C:\ windows \ Installerでファイルを見つけるには、Windowsエクスプローラーでこのフォルダーに移動し、詳細ビューに切り替えて、「Subject」列を表示すると、すべてのnnnnnnnn.msiファイルで対応する製品名が表示されます。


6
私は隠された秘密のために二度あなたに投票したかった- make column "Subject" visible and you will see for all nnnnnnnn.msi fies their corresponding name of product.。Windowsはこのような神秘的なオペレーティングシステムです
。P– RBT

3)ステップ3は私にとって必要でした。アンインストーラーがファイルを受け入れる前に、5188bfc6.msiファイル(hex#.msi)をコピーして、元のファイル名MyApp.msiに名前を変更する必要がありました。このアンインストールが正常に機能した後。
ジョーB
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.