Почему MSI требует исходный файл .msi для продолжения удаления?

StackOverflow https://stackoverflow.com/questions/208530

Вопрос

Как большинство из вас, вероятно, заметили, при удалении пакета MSI Windows запросит исходный .msi файл.Почему это так?

Я вижу в этом только недостатки:

  • не устойчив к изменениям в сети.
  • не устойчив к изменениям на локальном диске.
  • неожиданно для пользователей.
  • обычно требуется, чтобы пользователи покинули свой рабочий стол и начали крестовый поход за правильным компакт-диском.
  • это как бы доказывает, что установки не являются самодостаточными.
  • пропагандирует использование небезопасных инструментов, таких как msizap.
  • что, в свою очередь, способствует формированию менталитета "в следующий раз я просто воспользуюсь zip-файлом".

Может ли кто-нибудь пролить некоторый свет на это?

Это было полезно?

Решение

Исправьте Неисправное Удаление:Вы можете попробовать самое новое Средство удаления FixIt от Microsoft если у вас возникли проблемы с удалением MSI.И еще одно звено: Удаление MSI-файла из командной строки без использования msiexec (множество различных способов удаления MSI).


Обновить:

Этот новый инструмент поддержки (этот инструмент теперь также устарел) можно попробовать в последних версиях Windows, если у вас есть несуществующие пакеты MSI, требующие удаления (а не устаревший, не рекомендуемый, неподдерживаемый msizap.exe).

Некоторые предложили использовать инструмент, на который ссылается здесь saschabeaumont: Удаление без использования MSI-файла.Если вы попробуете это и это сработает, пожалуйста, обязательно сообщите нам об этом.Обратная связь в этом ответе указывает на то, что это работает (на данный момент у меня нет никаких зависших настроек для тестирования).


Почему вас просят предоставить оригинальный установочный носитель?:

  • Оригинальный MSI не нужен для удаления, если только сам MSI не спроектирован плохо или кэшированный MSI отсутствует (смотрите подробности ниже).
  • Все установленные MSI-файлы кэшируются в %Системный корень%\Установщик\*.* используя случайное шестнадцатеричное имя.
  • Кэшированный MSI-файл используется для любых техническое обслуживание, ремонт и удалить операции - и этого достаточно для удаления в подавляющем большинстве случаев.
  • В некоторых случаях этот кэшированный файл может отсутствовать, и тогда удаление вообще невозможно в некоторых случаях (некоторые теории относительно того, почему это может произойти - MSI design errors, anti-virus quarantining, system restore, tinkering, developer system in erroneous state from development work, etc...).Смотрите дополнительную информацию ниже - и ссылки для принудительной деинсталляции или отмены регистрации продукта.
  • Первоисточник требуется только в том случае, если файлы необходимо скопировать на диск (для сервисной установки), или MSI выполняет явный запрос чтобы разрешить исходный код с помощью стандартного действия Источник разрешения или с помощью пользовательского действия (которое это не должно быть сделано в правильно созданном пакете - Я думаю, что пакет MS Office содержал эту ошибку ResolveSource в тот же день, заставляя всех искать свои установочные компакт-диски / DVD-диски).
  • В предыдущих выпусках Windows этот кэшированный MSI-файл был удален из всех cabs и, следовательно, содержал только структуру установщика и никаких файлов.
  • Начиная с Windows 7 (MSI версии 5) тот Файлы MSI теперь кэшируются в полном размере чтобы избежать нарушения подписи файла, которая влияет на запрос UAC при запуске программы установки (известная проблема Vista).Это может привести к значительному увеличению потребления дискового пространства (на несколько гигабайт для некоторых систем). Ознакомьтесь с этой статьей и особенно с обсуждением внизу для получения дополнительной информации.
  • Чтобы предотвратить кэширование огромного MSI-файла, вы можете запустить администратор-установка из пакета перед установкой.Именно так поступила бы компания с надлежащим развертыванием в управляемой сети: она удалит cab-файлы и создаст сетевую точку установки с небольшим MSI-файлом и файлами помимо него. Обратите внимание, что это может привести к Запрос UAC в некоторых случаях, поскольку извлеченный MSI-файл больше не подписан - это необходимо протестировать в вашей конфигурации SOE / desktop.
  • Прочтите мой ответ в этой теме для получения полного описания установки администратором: Какова цель административной установки, инициированной с использованием msiexec /a? или этот аналогичный, но, возможно, более доступный ответ: установка администратора и ее использование
  • В некоторых редких случаях кэшированный MSI-файл (со случайным именем) может по ошибке отсутствовать, и тогда uninstall запросит исходный MSI-файл для завершения удаления. Такое случается не часто.Раньше это был тот случай, когда можно было использовать MsiZap.exe чтобы очистить такую установку, но этот инструмент устаревший, устаревший и неподдерживаемый.Не используйте его - слишком много несовместимостей с более новыми версиями Windows, и вы создаете новые проблемы.Возможно, попробовать этот инструмент поддержки вместо этого (также не рекомендуется).Единственный вариант, который я могу предложить сейчас, это этот ответ от saschabeaumont. Если вы попробуете этот инструмент, пожалуйста, дайте нам знать, работает ли он для васu.Если вы хотите выяснить, что могло привести к отсутствию кэшированного MSI-файла, попробуйте прочитать раздел 12 здесь: Удаление MSI-файла из командной строки без использования msiexec (вкратце, потенциальные причины варьируются от помех в работе скриптов восстановления системы, антивируса и очистки до ошибочной ручной настройки, нехватки места на диске, перебоев в подаче электроэнергии, ошибок отладки в окне разработчика, плохо оформленных файлов MSI с дублирующимися кодами пакетов, неудачных исправлений и т.д...Боюсь, много теорий, мало достоверных фактов).
  • В качестве последнее средство ты можешь попробовать восстановление системы (если только он не был отключен полностью или частично), чтобы вернуться к предыдущему состоянию установки и посмотреть, решит ли это вашу проблему с удалением (вы можете найти демонстрационные видео этого на YouTube или аналогичном сайте).
  • Имейте в виду, что восстановление системы может повлиять на Центр обновления Windows, который затем необходимо повторно применить, а также на многие другие системные настройки.Я видел новые, неразрешимые проблемы с установкой, возникающие в результате восстановления системы, но обычно все работает нормально.Очевидно, что не используйте эту функцию для развлечения, это последнее средство и лучше всего используется для откат новых драйверов или настройки, которые только что были установлены и, как было обнаружено, вызывают немедленные проблемы и тому подобные неполадки.Чем дольше вы будете возвращаться назад, тем больше переделок вы создадите для себя.Много самоочевидных вещей, но я думаю, об этом нужно упомянуть.
  • Поскольку я упомянул о восстановлении системы, полагаю, я должен упомянуть последняя известная хорошая функция настройки.Эта функция не имеет ничего общего с удалением или восстановлением системы, но является последней конфигурацией загрузки, которая сработала или привела к запуску системы.Его можно использовать для возобновления работы вашей системы, если она загорается синим цветом или останавливается во время загрузки.Это часто происходит после установки драйвера.Это ничего не сделает, чтобы исправить вашу неудачную деинсталляцию (или я был бы очень удивлен).

Связанный ответ:


В дополнение к этому ответу, возможно, представляет интерес эта статья о различных способах удаления пакетов MSI.Это довольно популярная статья с помощью большое количество просмотров:

Другие советы

Есть несколько причин сохранить оригинальную версию msi:

  • Программа удаления использует его, чтобы узнать, какие файлы и разделы реестра были установлены, и убедиться, что все они очищены.
  • MSI может содержать код для специальных действий по удалению, которые необходимо выполнить.
  • Это позволяет вам выполнить операцию "восстановить" из меню "Установка и удаление программ", независимо от того, сохранили ли вы установочный файл самостоятельно.

Обычно Windows сохраняет файл в кэше для вас, так что вам не нужно думать об этом.Посмотрите вашу папку %WINDIR%\Installer\.Единственная причина, по которой он запросит у вас исходный msi-файл, - это если что-то не так с сохраненным файлом.Это устраняет большинство ваших проблем, хотя и порождает новую (нехватка места на диске).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top