Где Windows хранит MSI-файлы для удаления?

Я пытаюсь выяснить, как Windows (XP через 7) обрабатывает установку и удаление файлов MSI. Я придумал в ситуациях, когда установщик Windows не может удалить, потому что он отсутствует исходный файл MSI, что приводит меня к мысли, что он хранит копию всех установленных пакетов MSI где-то. Где?

у меня было несколько теорий.

  1. Он expectes его находиться в той же папке, как он был установлен из. Тот разделы реестра в HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionUninstall указывает на исходную папку установки, и сообщения об ошибках, когда файл MSI отсутствует часто указывают на это. Удаление файла MSI из этой папки не мешает процессу удаления, поэтому я отказался от этой теории.

  2. C:WindowsInstaller. Эта папка на самом деле содержит кучу, казалось бы, случайно названных файлов MSI. Но этот список неполный. Я нахожу записи в разделе реестра, упомянутом в 1) который не имеет копии MSI в этой папке.

Так как это работает? Как установщик Windows может удалить приложения на основе MSI, хотя MSI не в 1) и не 2)?

26
задан Nilzor
13.02.2023 6:33 Количество просмотров материала 3342
Распечатать страницу

1 ответ

видимо работает так (на Windows 7 я не знаю про XP и другие операционки):

когда пользователь устанавливает какое-либо приложение, Windows делает следующее:

1) создает раздел реестра

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\[идентификатор GUID продукта]

для этого приложения.

Если у вас есть доступ к оригинальному msi-файлу установщика вашего приложения, вы можете найти [PRODUCTID GUID], открыв msi-файл в орке.exe и нажав на" свойство "слева в orca, и ищет" ProductCode " строку справа. Если у вас нет доступа к оригиналу *.msi-файл, вы можете просто найти раздел реестра HKLM \ SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall для имени приложения.

Если вы хотите удалить ваше приложение (которое, например, отказывается от удаления) из списка установленных приложений в Панели Управления, вы можете удалить запись из этого ключа удаления. Это, несомненно, исчезают из список в панели управления, но Windows все равно его запомнит. Например, при попытке установить следующую версию того же приложения программа установки может настоять на удалении предыдущей версии. См. пункт 2.

2) Windows копирует оригинал *.msi-файл в папку C:\Windows\Installer и переименовывает его в случайное имя (держит .хотя расширение msi). Windows также создает раздел реестра в HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\[InternalUserId]\Products\[some random guid-like sequence of chars identifying to windows your installation]\InstallProperties. параметр "LocalPackage" в этом разделе указывает на переименованный msi папка. Чтобы найти файл в C:\windows\Installer вы можете перейти к этой папке в проводнике Windows, переключить его в режим подробностей, сделать столбец "тема" видимым, и вы увидите для всех nnnnnnnn.msi fies соответствующее название продукта.

37
отвечен farfareast 2023-02-14 14:21

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх