Как извлечь файлы из пакета MSI?


192

У нас есть несколько старых патчей, из которых мы хотим получить файлы, но не хотим тратить время на их установку на компьютер.

Кто-нибудь может посоветовать способ извлечения файлов из установочного пакета MSI?


Можете ли вы предоставить больше информации о том, какой именно установочный пакет MSI вы хотите извлечь, сведения о вашей ОС и т. Д.
Firee

Ответы:


212

Сначала зайдите в командную строку с повышенными правами, чтобы сделать это:

  1. Нажмите кнопку Пуск.

  2. Нажмите Все программы.

  3. Зайди в аксессуары.

  4. Щелкните правой кнопкой мыши на командной строке.

  5. Выберите «Запуск от имени администратора».

  6. Когда появится приглашение UAC, нажмите «Продолжить».

Получив командную строку с повышенными правами, введите следующее:

msiexec /a drive:\filepath\to\MSI\file /qb TARGETDIR=drive:\filepath\to\target\folder

используя нужные места для заполнения вышеупомянутых путей к файлам. Пример:

msiexec /a c:\testfile.msi /qb TARGETDIR=c:\temp\test

5
еще один быстрый Google обнаружил это: legroom.net/software/uniextract Я бы предпочел использовать встроенные модули, но это похоже на приемлемую утилиту.

5
Насколько я понимаю (из msiexec /?), Эта команда фактически установит программу в это место; Я не думаю, что это то, что имел в виду оригинальный запросчик.

8
@ user6738 Я проверил это, и он не устанавливает программное обеспечение. Программное обеспечение не найдено в appwiz и не может быть удалено через MSI и сообщает, что оно не установлено. Это действительно извлекает файлы из моего теста.
Адам Кэвнесс

17
Я запустил это на заблокированном компьютере Win8.1 (рабочий ноутбук), и следует отметить, что права администратора НЕ нужны для извлечения .msiфайлов.
MattDMo

5
Отличный ответ! Я поместил это в extractMSI.cmdфайл: msiexec /a %1 /qb TARGETDIR="%~d1%~p1%~n1" || pauseи добавил его в опцию msi-файла «Открыть с помощью ...»
Тобиас Кинцлер,

75

Используйте 7Zip .
Он распакует MSI, CAB, некоторые EXE и многие другие пакеты для вас. Также для этого не требуются права администратора.

-РЕДАКТИРОВАТЬ-

И это с открытым исходным кодом, так что не надоедливые сообщения, просящие вас купить вещи


13
и после попытки msiexec справляется с этим лучше (сохраняет каталоги, правильно называет файлы и т. д.)
Майкл Шуберт

Это не работает для меня на win7 x64 с 32-битной 7-Zip. Есть ли определенный способ (не перетаскивание), вы должны сказать ему, чтобы открыть файл?
ebyrob

Должна быть опция 7zip в контекстном меню, когда вы щелкаете правой кнопкой мыши по файлу - это даст вам возможность извлечь файлы
Shekhar

7
Я вижу много вещей с восклицательным знаком перед фактическими файлами. Я думаю, что-то изменилось, или у меня есть нечетный файл MSI. Я попробовал 7-Zip 9.20.
млт

@MichaelSchubert - это зависит. Если вы работаете не на компьютере с Windows, 7Zip - хороший вариант, поскольку версия для командной строки доступна и для других систем. Зависит от варианта использования, я бы сказал.
За Лундберг

46

Существует также Lessmsi, который является полностью бесплатным и открытым исходным кодом.

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


7
Спасибо! Это помогло мне извлечь из MSI, который не будет извлечен с помощью команды msiexec, говорящей «установка администратора не поддерживается» для <имя установочного пакета>
axk

1
этот помог .. msiexec по какой-то причине не извлек ...
Абдул Хамид

23

Есть встроенная поддержка MSI для извлечения файлов (установка администратора)

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

Обратите внимание, что запуск административной установки по сравнению с использованием zip-инструмента для извлечения файлов очень отличается! Последний не будет корректировать макет мультимедиа таблицы мультимедиа так, чтобы пакет был настроен на использование внешних исходных файлов, что является правильным способом. Всегда предпочитайте запускать фактическую установку администратора поверх любых хакерских извлечений из zip. Что касается сжатия, на самом деле есть три различных алгоритма сжатия, используемых для файлов cab в формате файлов MSI: MSZip, LZX и Storing (без сжатия). Все они обрабатываются правильно путем установки администратора.


Admin-установки имеют много применений

Рекомендуется прочитать больше об административных установках, так как это полезная концепция, и я написал пост о stackoverflow: какова цель административной установки, инициированной с помощью msiexec / a? ,

По сути, установка администратора важна для:

  • Извлечение и проверка файлов установщика
  • Развертывание с помощью программного обеспечения для управления системами, например, SCCM (избегает больших кэшированных MSI-файлов в C: \ Windows \ Installer, поскольку файлы извлекаются из внутренних кабин)
  • Переупаковка корпоративных приложений
  • Ремонт, модификация и самовосстановление
  • Ямочный ремонт и обновления
  • MSI реклама ( функция « запустить из источника »)
  • Ряд других мелких деталей

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


Админ-установка, практические инструкции

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

Запустите эти команды из командной строки с повышенными привилегиями и следуйте инструкциям в графическом интерфейсе для интерактивных командных строк:

  • MSI файлы :

    msiexec /a File.msi
    

    это для запуска с графическим интерфейсом, вы можете сделать это тоже молча:

    msiexec /a File.msi TARGETDIR=C:\MyInstallPoint /qn
    
  • файлы setup.exe :

    setup.exe /a
    

Setup.exe файл также может быть установка устаревших стилей (не MSI) или страшился InstallScript MSI тип файла - хорошо известный багги InstallShield тип проекта с гибридным неэталоны-совместимый формат MSI. По сути, это MSI с пользовательским, более продвинутым графическим интерфейсом, но он также полон ошибок.

Для устаревших setup.exe файлов / а не будет делать ничего, но вы можете попробовать / extract_all: переключатель [путь] , как описано в этом формате PDF . Это хорошая ссылка для установки без вывода сообщений и других вещей. Другой ресурс - это список параметров командной строки Installshield setup.exe .

Файлы исправлений MSI (* .MSP) могут быть применены к образу администратора для правильного извлечения его файлов. 7Zip также сможет извлечь файлы, но они не будут правильно отформатированы.

Наконец, если никакой другой способ не работает, вы можете получить извлеченные установочные файлы, очистив временную папку в вашей системе, запустив файл setup.exe в интерактивном режиме, а затем дождитесь появления первого диалогового окна. В большинстве случаев установщик извлекает кучу файлов во временную папку. Иногда файлы обычные, иногда в формате CAB, но Winzip, 7Zip или даже Universal Extractor (еще не тестировали этот продукт) - могут открыть их.


Также смотрите этот ответ: superuser.com/questions/307678/…
Штейн Осмул

Тот же пост о stackoverflow: stackoverflow.com/a/24987512/129130 (я должен удалить один, но оба проголосовали, и они были объединены недавно).
Штейн Осмул

8

Я бы порекомендовал UniExtract, чтобы сделать решение neoice еще проще. Он делает то же самое, просто более автоматизирован и позволяет использовать несколько методов для извлечения файлов MSI, а не только для административной установки (как использует его решение).

UniExtract также может работать с exe-файлами, упакованными с WISE или InstallShield, а также множеством других сжатых форматов. Ох, и это бесплатно.

Universal Extractor - это программа, которая выполняет именно то, что говорит: извлекает файлы из любого типа архива, будь то простой zip-файл, программа установки или даже пакет установщика Windows (.msi).



1

вы можете использовать Orca, это приложение является частью Platform SDK, но вы также можете скачать его здесь http://astebner.sts.winisp.net/Tools/Orca.zip


3
Orca лучше подходит для извлечения метаданных, таких как файлы, папки и таблицы реестра. Обычно это не очень полезно для извлечения реальных файлов (совершенно бесполезно, если файлы не хранятся в двоичной таблице).
Synetech

1

lessmsiдействительно лучший выбор здесь, так как он предлагает вам точно выбрать, какие файлы извлекать и куда они должны идти. Кроме того, его можно легко установить с помощью apt-getфреймворка для Windows, называемого Choclatey. Вышеуказанный lessmsiвеб-сайт перемещен, и его также можно найти / загрузить на GitHub . Кроме того, вы можете найти много других инструментов и информацию, связанную с MSI ЗДЕСЬ. : (Извините, я не могу опубликовать более 2 ссылок!)


1

Добавьте PeaZip в список. Работал как чемпион


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




0

Установки Installshield .exe (как вы их называете) бывают разных типов, и, как правило, из них можно извлечь файлы.

Installshield setup.exe может содержать старые, устаревшие не MSI-установщики или новые MSI-установщики.

Если файл setup.exe обертывает установочный файл MSI, вы можете указать setup.exe / a, и будет запущена установка администратора MSI, что позволит вам указать и вывести местоположение файлов.

Если setup.exe является устаревшей установкой Installshield , он может поддерживать или не поддерживать извлечение файлов с помощью ключа / extract_all: [путь] . Пожалуйста, смотрите здесь (обновлено в июле 2011 г., ссылка на Acresso больше не действительна, обновлена ​​снова в феврале 2014 г. - теперь указывается на itninja).

Также обратите внимание, что другой способ получить эти файлы - очистить временную папку в вашей системе, запустить интерактивный файл setup.exe, а затем дождаться появления первого диалогового окна. В большинстве случаев установщик извлекает кучу файлов во временную папку. Иногда файлы обычные, иногда в формате CAB, но Winzip, 7Zip или даже Universal Extractor (еще не тестировали этот продукт) - могут открыть их.


Мои требования для этого уже выполнены, но я попробую то, что вы предлагаете в какой-то момент, чтобы увидеть, сработало ли это. Спасибо за ответ.
Мартин
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.