Добавить команду контекстного меню извлечения в файлы MSI

Если у вас есть пакет MSI, вас может заинтересовать извлечение его содержимого без установки приложения. Это можно быстро сделать без использования сторонних инструментов. Windows уже поставляется со всем необходимым для работы. В этой статье мы увидим, как добавить полезную команду «Извлечь» в контекстное меню файла MSI.

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

  1. Нажмите Победить + р сочетания клавиш на клавиатуре, чтобы открыть диалоговое окно «Выполнить».
  2. В поле «Выполнить» введите следующее:
    msiexec /?

  3. Установщик Windows отобразит содержимое справки в окне:

Он поддерживает следующие переключатели:

Варианты установки
Устанавливает или настраивает продукт
/ a Административная установка — устанавливает продукт в сети.
/ j [/ t] [/ g]
Рекламирует продукт — m всем пользователям, u текущему пользователю
Удаляет продукт
Показать варианты
/тихий
Тихий режим, без взаимодействия с пользователем
/ пассивный
Автоматический режим — только индикатор выполнения
/ q [n | b | r | f]
Устанавливает уровень пользовательского интерфейса
n — Нет интерфейса
б — Базовый интерфейс
r — уменьшенный интерфейс
f — Полный интерфейс (по умолчанию)
/помощь
Справочная информация
Параметры перезагрузки
/ norestart
Не перезагружать после завершения установки
/ promptrestart
При необходимости запрашивает перезапуск пользователя
/ forcerestart
Всегда перезагружайте компьютер после установки
Параметры ведения журнала
/ l [i | w | e | a | r | u | c | m | o | p | v | x | + |! | *]
i — Статусные сообщения
w — нефатальные предупреждения
e — Все сообщения об ошибках
а — Запуск действий
r — записи, относящиеся к конкретному действию
u — запросы пользователей
c — Начальные параметры пользовательского интерфейса
m — информация о нехватке памяти или о фатальном выходе
o — Сообщения о нехватке места на диске
p — Свойства терминала
v — Подробный вывод
x — Дополнительная отладочная информация
+ — Добавить в существующий файл журнала
! — Сбросить каждую строку в журнал
* — Записывать всю информацию, кроме опций v и x
/бревно
Эквивалент / л *
Параметры обновления
/ update [; Update2.msp]
Применяет обновления
/ uninstall [; Update2.msp] / package Удалить обновления для продукта
Варианты ремонта
/ f [p | e | c | m | s | o | d | a | u | v] Восстанавливает продукт
p — только если файл отсутствует
o — если файл отсутствует или установлена ​​более старая версия (по умолчанию)
e — если файл отсутствует или установлена ​​более ранняя или более ранняя версия
d — если файл отсутствует или установлена ​​другая версия
c — если файл отсутствует или контрольная сумма не соответствует вычисленному значению
a — принудительно переустановить все файлы
u — все необходимые записи реестра для конкретного пользователя (по умолчанию)
m — все необходимые записи реестра для конкретного компьютера (по умолчанию)
s — все существующие ярлыки (по умолчанию)
v — запускается из исходного кода и повторно загружает локальный пакет
Установка общедоступных свойств
[PROPERTY = PropertyValue]

Вариант, касающийся этой ситуации, — / a. Хотя он описывается как «Административная установка — устанавливает продукт в сети», его можно использовать для извлечения содержимого одного пакета MSI в отдельные файлы меньшего размера, которые могут быть обработаны патчем. Можно использовать следующую команду:

msiexec / a "путь \ к \ package.msi" / qb TARGETDIR = "путь \ к \ папке \ назначения \"

TARGETDIR — это свойство, общее для каждого пакета, которое определяет папку назначения для содержимого пакета MSI.

Переключатель «/ qb» указывает установщику Windows показывать основной интерфейс во время процесса. Откроется диалоговое окно с кнопкой «Отмена» и индикатором выполнения.

Например, я могу использовать следующую команду для распаковки установщика MSI FAR Manager:

msiexec / a "C: \ Users \ winaero \ Downloads \ Far30b4774.x64.20160902.msi" / qb TARGETDIR = "C: \ Users \ winaero \ Downloads \ Far"

Если целевая папка не существует, она будет создана автоматически. В моем случае будет создана подпапка Far в папке Download.

Приведенную выше команду можно ввести непосредственно в диалоговом окне «Выполнить».

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

Добавить команду контекстного меню извлечения в файлы MSI

  1. Откройте редактор реестра.
  2. Перейдите к следующему ключу реестра:
    HKEY_CLASSES_ROOT \ Msi.Package \ оболочка

    Совет: как перейти к нужному разделу реестра одним щелчком мыши.

  3. Создайте здесь новый подключ и назовите его Извлечь.
  4. Под ключом Extract создайте новый подраздел и назовите его Command:
  5. Установите в качестве значения по умолчанию для подраздела Command следующую строку:
    msiexec.exe / a "% 1" / qb TARGETDIR = "% 1 Содержание"

    См. Следующий снимок экрана:

Как только вы щелкните правой кнопкой мыши пакет MSI в проводнике, вы найдете новый пункт контекстного меню «Извлечь». Если вы запустите его, он создаст новый каталог «package_name.msi Contents» в текущей папке и извлечет туда содержимое пакета. См. Следующий снимок экрана:

Чтобы сэкономить ваше время, я сделал готовые файлы реестра. Вы можете скачать их по ссылке ниже.

Скачать файлы реестра

Файл отмены включен.

Этот трюк работает в Windows 10, Windows 8 и Windows 7.

Обратите внимание, что некоторые пакеты не поддерживают административную установку. Их нельзя извлечь с помощью этого метода. Кроме того, когда вы извлекаете пакет MSI таким образом, его административная точка установки (папка, в которую он извлекается) становится обслуживаемой. Патч установщика Windows (MSP) может использоваться для его обновления, поэтому при установке пакета также применяется исправление.

Добавить комментарий

Ваш адрес email не будет опубликован.