Я хочу извлечь MSI EXE-установки для публикации по сети.
Например, используя Universal Extractor, но он не работает для среды выполнения Java.
Я хочу извлечь MSI EXE-установки для публикации по сети.
Например, используя Universal Extractor, но он не работает для среды выполнения Java.
7-Zip должен сделать трюк.
С его помощью вы можете извлечь все файлы внутри EXE (таким образом, также файл MSI).
Хотя вы можете сделать это с помощью 7-Zip, лучший способ - это административная установка, указанная Stein Åsmul.
Для проектов InstallShield MSI я нашел следующее:
setup.exe /s /x /b"C:\FolderInWhichMSIWillBeExtracted" /v"/qn"
Эта команда приведет к извлечению MSI в каталог, который вы можете свободно указать, и тихое удаление продукта.
Командная строка в основном сообщает программе setup.exe попытку удалить продукт (/x) и сделать это тихо (/s). При этом он должен извлечь MSI в определенное место (/b).
Команда/v передает аргументы установщику Windows, в этом случае аргумент /qn. Параметр/qn отключает любой выход GUI установщика.
Просто отказ от ответственности. Файл setup.exe может содержать встроенный MSI, он может быть устаревшим (не MSI) установщиком или может быть просто обычным исполняемым файлом без средств извлечения бы то ни было. В приведенном ниже разделе "обсуждение" показано использование изображений администратора для файлов MSI и извлечение файлов MSI из файлов setup.exe. Затем он предоставляет некоторые ссылки для обработки других типов файлов setup.exe. Также см. Раздел комментариев. Помните, что "последним средством" является запуск установщика, а затем поиск извлеченных файлов в папке temp.
MSI или установщик Windows имеет встроенную поддержку для этого - извлечение файлов из файла MSI. Это называется административная установка. Он в основном предназначен для создания точки сетевой установки, с которой установка может быть запущена на многих целевых компьютерах. Это гарантирует, что исходные файлы всегда доступны для любых ремонтных операций.
Обратите внимание, что запуск установки администратора по сравнению с использованием zip-инструмента для извлечения файлов очень отличается!. Последний не будет настраивать формат носителя таблицы мультимедиа так, чтобы пакет был настроен на использование внешних исходные файлы - это правильный путь. Всегда предпочитайте запускать фактическую установку администратора над любыми извлечениями взломанного zip. Что касается сжатия, на самом деле существуют три разных алгоритма сжатия для файлов кабины внутри формата файла MSI: MSZip, LZX и Хранение ( несжатый). Все они обрабатываются правильно, выполняя установку администратора.
Внимание!: Windows Installer кэширует установленные файлы MSI в системе для восстановления, изменения и удаления сценариев. Начиная с Windows 7 (версия MSI 5) файлы MSI теперь кэшируются в полном размере, чтобы не нарушать подпись файла, которая запрещает приглашение UAC при запуске установки (известная проблема с Vista). Это может привести к огромному увеличению потребления дискового пространства (несколько гигабайт для некоторых систем). Чтобы предотвратить кеширование огромного файла MSI, перед установкой следует запустить установку пакета администратора. Это то, как компания с надлежащим развертыванием в управляемой сети будет делать что-то, и она будет лишать файлы кабины и сделать точку сетевой установки с небольшим файлом MSI и файлами, кроме него.
Рекомендуется больше узнать об установках администратора, поскольку это полезная концепция, и я написал сообщение о stackoverflow: Какова цель инициирования административной установки используя msiexec/a?.
По сути, установка администратора важна для:
Пожалуйста, прочитайте сообщение stackoverflow, указанное выше для более подробной информации. Это довольно важная концепция для системных администраторов, разработчиков приложений, разработчиков, менеджеров выпуска и даже средний пользователь, чтобы увидеть, что они устанавливают и т.д.
Вы можете выполнить установку администратора несколькими способами в зависимости от способа доставки установщика. По сути, он либо поставляется в виде файла 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 - a хорошо известный тип проекта Installshield с гибридным нестандартным стандартом MSI. Это, по сути, MSI с пользовательским, более продвинутым графическим интерфейсом, но он также полон ошибок.
Для устаревших файлов setup.exe /a ничего не сделает, но вы можете попробовать переключатель /extract_all: [path] как объясняется в this pdf. Это хорошая ссылка для бесшумной установки и других вещей. Другим ресурсом является этот список параметров командной строки Installshield setup.exe.
Файлы исправлений MSI (*.MSP) могут быть применительно к изображению администратора для правильного извлечения его файлов, 7Zip также сможет извлекать файлы, но они не будут правильно отформатированы.
Наконец - в последней инстанции - если никакой другой способ не работает, вы можете получить извлеченные файлы настроек, очистив временную папку в своей системе, запустив setup.exe в интерактивном режиме, а затем дождитесь появится первый диалог. В большинстве случаев программа установки извлечет кучу файлов в временную папку. Иногда файлы являются обычными, иногда в формате CAB, но Winzip, 7Zip или даже Universal Extractor (не тестировали этот продукт) - могут открывать их.
Я предполагаю, что этот вопрос в основном касался InstallShield с тегами, но в случае, если кто-то приходит с такой же проблемой для пакетов на базе WiX (и, возможно, для других), просто вызовите установщик с помощью /extract, например:
C:\> installer.exe /extract
Это поместит MSI в папку вместе с установщиком.
Начиная с параметра:
setup.exe /A
запрашивает сохранение включенных файлов (включая MSI
).
Это может зависеть от программного обеспечения, которое создало setup.exe
.
Единственный способ сделать это - запустить exe и собрать MSI. Вещь, о которой вы должны позаботиться, заключается в том, что если вы транслируете MSI с использованием MST, они могут потеряться.
Я использую эту командную строку:
SET TMP=c:\msipath
MD "%TMP%"
SET TEMP=%TMP%
start /d "c:\install" install.exe /L1033
PING 1.1.1.1 -n 1 -w 10000 >NUL
for /R "%TMP%" %%f in (*.msi) do copy "%%f" "%TMP%"
taskkill /F /IM msiexec.exe /T
Запустите программу установки, но не нажимайте кнопку Install >. Тогда
cd "%AppData%\..\LocalLow\Sun\Java"
и найдите файл MSI в одном из подкаталогов (например, jre1.7.0_25
).
Обратите внимание, что Data1.cab
из этого подкаталога также потребуется.
Нет необходимости использовать какой-либо инструмент! Мы можем следовать простому пути.
Я не знаю, какой инструмент создал вашу самораспаковывающуюся программу установки, и поэтому мне придется предоставить общий ответ.
Большинство программ такого типа извлекают файл пакета (.msi) в каталог TEMP. Это поведение по умолчанию для InstallShield Developer.
Без дополнительной информации я бы рекомендовал вам просто запустить настройку, и как только появится первый диалог MSI, вы можете проверить свой каталог TEMP для вновь созданного подкаталога или файла MSI. Перед отменой/остановкой установщика просто скопируйте этот файл MSI из папки TEMP. После этого вы можете отменить установку.