Удалить msi из командной строки

Обновлено: 06.07.2024

Ниже приведены стандартные параметры командной строки для стандартного установщика Майкрософт (Msiexec.exe), исполняемый файл, используемый для интерпретации пакетов и установки продуктов.

Параметры командной строки не чувствительны к регистру.

Msiexec задает уровень ошибок возврата, соответствующий кодам системных ошибок.

параметры командной строки, указанные в этом разделе, доступны начиная с установщик Windows 3,0. параметры командной строки установщик Windows доступны в установщик Windows 3,0 и более ранних версиях.

Справка и быстрый справочник. Отображает правильное использование команды установки, включая список всех параметров и поведений. Описание использования может отображаться в пользовательском интерфейсе. Неправильное использование любого параметра вызывает этот параметр справки.

эквивалентный параметр установщик Windows Command-Line: /? .

Примеры

/quiet

Используйте /norestart /forcerestart стандартные параметры командной строки для управления перезагрузками. Если параметры перезагрузки не указаны, установщик перезапускает компьютер при необходимости, не отображая пользователю никаких запросов или предупреждений.

эквивалентный параметр установщик Windows Command-Line: /qn .

Примеры

Msiexec /package Application.msi /quiet

Msiexec /uninstall Application.msi /quiet

Msiexec /update msipatch.msp /quiet

Msiexec /uninstall msipatch.msp /package Application.msi / quiet

/passive

Используйте /norestart /forcerestart стандартные параметры командной строки для управления перезагрузками. Если параметр reboot не указан, установщик перезапускает компьютер при необходимости, не отображая пользователю никаких запросов или предупреждений.

эквивалентный параметр установщик Windows Command-Line: /qb! -with REBOOTPROMPT=S set в командной строке.

Примеры

msiexec /package Application.msi /passive

/norestart

Параметр "никогда не перезапускать". Установщик никогда не перезагружает компьютер после установки.

эквивалентная командная строка установщик Windows REBOOT=ReallySuppress задана в командной строке.

Примеры

msiexec /package Application.msi /norestart .

/forcerestart

Параметр всегда перезапуска. Установщик всегда перезапускает компьютер после каждой установки.

эквивалентная командная строка установщик Windows REBOOT=Force задана в командной строке.

Примеры

msiexec /package Application.msi /forcerestart

/promptrestart

эквивалентная командная строка установщик Windows REBOOTPROMPT = "" задана в командной строке.

/Uninstall (продукт)

Параметр удаления продукта. Удаляет продукт.

эквивалентным параметром Command-Line установщик Windows является /x.

Параметры

/Uninstall (исправление)

Удаление параметра обновления. Удаляет обновление.

эквивалентным параметром установщик Windows Command-Line является: /I with MSIPATCHREMOVE=Update1.msp | PatchGUID1[;Update2.msp | PatchGUID2] set в командной строке.

Параметры

/Package <Package.msi | ProductCode>/uninstall [; Update2. MSP | PatchGUID2]

Параметр log. Записывает данные журнала в файл журнала по указанному существующему пути. Путь к расположению файла журнала должен уже существовать. Установщик не создает структуру каталогов для файла журнала.

дополнительные сведения о всех методах, доступных для настройки режима ведения журнала, см. в разделе обычная регистрацияустановщик Windows.

эквивалентный параметр установщик Windows Command-Line: /L* .

В журнал вносятся следующие сведения:

/Package

Установите параметр продукта. Устанавливает или настраивает продукт.

эквивалентный параметр установщик Windows Command-Line: /I .

Параметры

/update

Параметр установки исправлений. Устанавливает один или несколько исправлений.

эквивалентная установщик Windows командной строки PATCH = [мсипатч. msp] <; PatchGuid2> задается в командной строке.

Я хочу установить msi с msiexec в определенном каталоге. Я использую:

Он не работает с "INSTALLDIR", потому что msi устанавливается по пути по умолчанию, а не по моему конкретному пути.

используйте TARGETDIR вместо INSTALLDIR. Обратите внимание, что кавычки для свойства TARGETDIR находятся только вокруг пути в случае пробелов.

msiexec / i "путь msi" TARGETDIR="C:\myfolder" / qb

INSTALLDIR представляет основной каталог установки продукта для обычной установки на основе установщика Windows (или INSTALLSCRIPT MSI), такой как программа установки запуска конечного пользователя.exe или ваш .база данных msi.

TARGETDIR представляет каталог установки для установки InstallScript или административной установки на основе установщика Windows (когда пользователь запускает программу установки.exe или MsiExec.exe с командной строкой /a переключатель.)

в проекте MSI InstallScript переменная InstallScript MSI_TARGETDIR сохраняет цель административной установки.

только этот вариант работал хорошо.

на самом деле, как INSTALLPATH/TARGETDIR являются правильными. Это зависит от того, как MSI обрабатывает это.

Я создаю MSG, используя wixToolSet . В файле WXS есть узел "каталог", корневой каталог которого может выглядеть следующим образом:

Как видите: Id это то, что вы должны использовать.

Это должно работать:

для моего msi мне пришлось установить DEFAULTPATHC="D:\myfolder" потому что позже в процессе установки как INSTALLDIR, так и TARGETDIR были сброшены, чтобы отразить значение в DEFAULTPATHC

в моем случае все они не работали и, наконец, он был

Я проверил журнал.txt, как описано ezzadeen и найдено "INSTALLFOLDER" там.

Это тоже сработало для меня

я попробовал две другие итерации и обе установлены по умолчанию C:\Program Файлы

INSTALLDIR="D:\myfolder" /q установил его на другой диск.

использовать в элементе installlocation. При возникновении проблем используйте журнал / lv.txt для сброса подробных журналов. Журналы сообщат вам, есть ли изменение свойства, которое переопределит ваши собственные параметры. Если вы уже установили продукт, второй запуск может просто обновить его без изменения местоположения установки. Сначала вам нужно будет удалить (используйте параметр /x).

Если вы использовали Advanced Installer построить свой .msi вы захотите использовать APPDIR=

длинный ответ: Когда вы запускаете MSI-файл непосредственно в командной строке, все, что происходит, это то, что он запускает MSIEXEC для вас. Эта ассоциация хранится в реестре. Вы можете увидеть список ассоциаций (в Проводнике Windows) Сервис / Свойства папки / типы файлов.

например, вы можете запустить .DOC файл из командной строки, и WordPad или WinWord откроет его для вас.

Если вы посмотрите в реестре под HKEY_CLASSES_ROOT\.msi , вы увидите, что .Файлы MSI ассоциированы с ProgID "Msi.Пакет." Если вы посмотрите в HKEY_CLASSES_ROOT\Msi.Package\shell\Open\command , вы увидите командную строку, которую Windows фактически использует при "запуске" a .MSI-файл.

существует множество способов удаления пакета MSI. Это как "ссылку".

в резюме вы можете удалить через:команду msiexec.exe, ARP, WMI, PowerShell системы развертывания, такие как в SCCM, VBScript / автоматизации com, DTF или скрытая папка кэша Windows, и несколько других вариантов, представленных под.

первые несколько абзацев обеспечивают важные MSI лакомые кусочки, то есть 14 разделы С различными способами удаления файла MSI. ПУ.

разделы 1, 2 и 3 это нормальные подходы удалить (и, следовательно рекомендуется). Лично я использую вариант 3 или 5 из раздела 3 (оба варианта с журналированием, но вариант 5 также работает молча). Если ты . очень занят, пропустить всю болтовню и пойти на один из них - это будет получить работу.

если у вас проблемы с удалением вообще и ищут альтернативу устаревшим MsiZap.exe и / или утилита очистки установщика Windows ( MSICUU2.exe ), вы можете попробовать новый FixIt инструмент от Microsoft (и на странице). Май, по-видимому работа для других проблем установки, а также.

если вы думаете MSI и Установщик Windows больше проблем, чем оно стоит, вы можете прочитать о корпоративные преимущества использования MSI-файлов.

Installscript MSI-файл настройки обычно поставляются завернутыми в настройка.exe файл. Чтобы узнать больше о параметрах для удаления таких настроек, пожалуйста см. следующие ссылки:настройка.exe в формат PDF справочный лист, настройка.exe и обновить.параметры командной строки exe.

некоторые файлы MSI устанавливаются как часть Пучков через механизм, такой как ожог (Wix Toolkit) или InstallShield Suite проектов. Это может сделать удаление немного отличается от того, что показано ниже. Вот пример для проектов InstallShield Suite.

если вас неожиданно попросили оригинал установочный носитель при попытке удалить, пожалуйста, прочитайте этот ответ:почему MSI требует оригинал .msi-файл для продолжения удаления? и, возможно, также раздел 12 ниже для некоторых важных технических деталей.

если у вас CCleaner или аналогичные инструменты очистки установлены, возможно, перейти к 11.

Enter image description here

11. Используя сторонний инструмент, такой как ccleaner или подобное

12. Используя инструмент очистки, такой как msizap или подобное

  • это, строго говоря, не способ "удалить" но "отменить " последняя установка или несколько установок, если на то пошло.
  • восстановление через точку восстановления возвращает систему к Предыдущие установки (вы можете найти видео демонстрации этого на YouTube или аналогичном сайте).
  • обратите внимание, что функция может быть отключена полностью или частично - можно отключить навсегда для всей машины или adhoc за установку.
  • я видел новые, неразрешимые проблемы установки в результате восстановления системы, но обычно он работает нормально. Очевидно, не используйте эту функцию для удовольствия. Это последнее средство и лучше всего использовать для откат нового драйвера или установки, которые только что были установлены и, как установлено, вызывают немедленные проблемы ( bluescreen перезагрузка, нестабильность и т. д. ).
  • чем дольше вы будете возвращаться, тем больше переделок вы создадите для себя, и тем выше будет риск. В большинстве систем есть только несколько точек восстановления, и большинство из них тянутся всего месяц или два, я считаю.
  • имейте в виду, что восстановление системы может повлиять Обновлений Windows это должно быть повторно применено - а также многие другие системные настройки. Помимо чистых раздражений, это также может привести к возникновению проблем безопасности, и вы можете запустить конкретную проверку безопасности в целевом поле(окнах) с помощью Анализатор Безопасности Microsoft Baseline или аналогичные инструменты.
  • поскольку я упомянул восстановление системы, я полагаю, что должен упомянуть загрузка последней удачной конфигурации. Эта функция не имеет ничего общего с удалить или восстановление системы, но это последняя конфигурация загрузки, которая работала или привела к запуску системы. Он может быть использован для запуска вашей системы снова, если он bluescreens или останавливается во время загрузки. Это часто происходит после установки драйвера.

14. Функции Установщика Windows (C++)

для полноты, я думаю, мы должны упомянуть ядро всего этого-до-металлического пути:Win32 Windows Installer API функции. Это вероятно, функции, используемые большинством, если не всеми другими подходами, перечисленными выше "под капотом". Они главным образом использованы применениями или разрешениями общаясь сразу с MSI как технология.

ниже вы найдете фрагмент C++, показывающий, как удалить Orca, 10.1.17134.12 по коду продукта с помощью вызова функция MsiConfigureProductEx. Чтобы удалить другой продукт, замените GUID, указанный для prodcode С одним для вашего продукта. Чтобы найти код продукта см. Этот ответ: как я могу найти GUID продукта установленной установки MSI?

удаление произойдет в полном режиме GUI. Для работы в беззвучном режиме или в каком-либо другом режиме GUI (reduced, basic и т. д. ), см.: MsiSetInternalUI функция.

фрагмент был сделан и протестирован с последней версией Visual Studio 2017 по состоянию на сентябрь 2018:

  1. создайте новое "консольное приложение Windows" из Visual C++ => рабочий стол Windows.
  2. скопируйте и вставьте вышеуказанный код в ваш основной файл CPP (заменив все, что там есть).

что нужно, чтобы иметь возможность запускать код. Возможно, установить точку останова, построить и бежать.

также помните, что удаление может быть инициировано с помощью команды WMIC:

wmic product get name --> Это будет список имен всех установленных приложений

wmic product where name='myappsname' call uninstall --> этого удалить приложение.

на msi расширение файла отображается на msiexec (таким же образом, набрав.txt filename в командной строке запускает Notepad/default .txt обработчик файлов для отображения файла).

таким образом, введите имя файла с помощью an .расширение msi действительно запускает msiexec с файлом MSI в качестве аргумента и принимает действие по умолчанию, устанавливает. По этой причине для удаления требуется вызвать msiexec с помощью Uninstall switch, чтобы отменить его.

Например, вы можете запустить файл .DOC из командной строки, и WordPad или WinWord откроют его для вас.

В итоге вы можете удалить с помощью: msiexec.exe, ARP, WMI, PowerShell, систем развертывания, таких как SCCM, VBScript/COM Automation, DTF или через скрытую папку кэша Windows, а также несколько других параметров, представленных ниже.

Первые несколько параграфов содержат важные лакомые кусочки MSI, затем есть 14 разделов с различными способами удаления файла MSI. Puh.

Если у вас есть проблемы с удалением вообще и вы ищете альтернативу устаревшей MsiZap.exe и/или утилита очистки установщика Windows ( MSICUU2.exe ), вы можете попробовать новый инструмент FixIt от Microsoft (или на международной странице). Очевидно, может работать и для других проблем установки.

Если вы считаете, что MSI и Windows Installer доставляют больше хлопот, чем того стоит, вы можете прочитать о корпоративных преимуществах использования файлов MSI.

Установки MSI установочного скрипта обычно поставляются в файле setup.exe. Чтобы узнать больше о параметрах, используемых для удаления таких установок, перейдите по следующим ссылкам: справочный лист setup.exe pdf, параметры командной строки Setup.exe и Update.exe.

Некоторые файлы MSI устанавливаются как часть пакетов через такой механизм, как проекты Burn (WiX Toolkit) или InstallShield Suite. Это может сделать удаление немного отличается от того, что видно ниже. Вот пример для проектов InstallShield Suite.

Если при попытке удаления вас неожиданно спросили об исходном установочном носителе, прочтите этот ответ: Почему MSI требует исходный MSI файл для удаления? и, возможно, также раздел 12 ниже для некоторых важных технических деталей.

Если у вас установлен CCleaner или аналогичные инструменты очистки, возможно, перейдите к разделу 11.

1. Using the original MSI

2. Using the old ARP Applet OR new Windows 8/10 Settings Interface

Просто надо упомянуть нормальный подход (ы), хотя это очевидно

  • ARP = appwiz.cplAdd/Remove Programs Applet ( appwiz.cpl )
  • Windows 10 Settings Interface => Новая оболочка для той же операции

ARP:

Интерфейс настроек (Windows 8/10):

3. Using msiexec.exe command line (directly or via a batch file)

  • Вы можете удалить из командной строки (cmd.exe), пакетного файла или даже из исполняемого файла в качестве операции оболочки.
  • Это можно сделать, передав GUID продукта (см. Ниже, как найти этот GUID) или путь к исходному файлу MSI, если он доступен, в msiexec.exe.

Вариант 1. Базовая интерактивная деинсталляция (доступ к исходному файлу MSI):

Вариант 3: Интерактивная деинсталляция с подробным файлом журнала:

Опция flush to log делает удаление медленным, потому что файл журнала записывается непрерывно, а не в пакетном режиме. Это гарантирует, что лог-буфер не будет потерян в случае сбоя установки.

Краткое объяснение параметров (так как я рекомендую эту опцию):

Опять же, как найти руководство по продукту: Как найти GUID продукта с установленной установкой MSI? (для деинсталляции, если у вас нет исходного MSI для указания в команде удаления).

Как найти GUID продукта для установленного MSI?

  • Есть несколько способов, я рекомендую использовать Powershell: Как найти GUID продукта установленной установки MSI?
  • Несколько других способов, описанных здесь (реестр, папка локального кэша и т.д.): Найти GUID из файла MSI

4. Using the cached MSI database in the super hidden cache folder

5. Using PowerShell

    Существует похожий, но более полный сценарий PowerShell, доступный в MSDN. Это позволяет запускать деинсталляцию на нескольких машинах.

Запись, добавленная Even Mien:

7. Using the Windows Installer Automation API

Следующий источник адаптирован экспертом MSI Кристофером Пейнтером с использованием VBScript:

8. Using a Windows Installer major upgrade

  • Основное обновление установщика Windows может произойти как часть установки другого файла MSI.
  • Основное обновление выполняется путем определения связанных продуктов в таблице обновлений MSI. Эти связанные настройки затем обрабатываются, как указано в таблице. Обычно это означает, что они удалены, но вместо этого можно также прервать основную настройку (обычно используется для обнаружения более высоких версий вашего собственного приложения, присутствующего на коробке).

9. Using Deployment Systems/Remote Administration Systems

10. Using WMI - Windows Management Instrumentation

11. Using a third-party tool such as ccleaner or similar

12. Using a cleanup tool such as msizap or similar

13. Using system restore ("installation undo" - last resort IMHO)

14. Windows Installer Functions (C++)

Ниже вы найдете фрагмент C++, показывающий, как удалить Orca, 10.1.17134.12 по коду продукта с помощью вызова функции MsiConfigureProductEx. Чтобы удалить другой продукт, замените GUID, указанный для prodcode на prodcode вашего продукта. Чтобы найти код продукта, см. Следующий ответ: Как я могу найти GUID продукта установленной установки MSI?

Фрагмент был создан и протестирован с последней версией Visual Studio 2017 от сентября 2018 года:

Это должно быть так, чтобы можно было запустить код. Может быть, установить точку останова, построить и запустить.

Также помните, что удаление может быть инициировано с помощью команды WMIC:

Расширение файла msi сопоставляется с msiexec (так же, как и ввод имени файла .txt в командной строке запускает обработчик файла Notepad/default .txt для отображения файла).

Таким образом, ввод в имя файла с расширением .msi действительно запускает msiexec с файлом MSI в качестве аргумента и принимает действие по умолчанию, устанавливает. По этой причине при удалении требуется вызывать msiexec с деинсталлятором для его установки.

Читайте также: