Як витягти файли з пакета 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-file
Tobias Kienzler

75

Використовуйте 7Zip .
Це розпакує MSI, CAB, деякі EXE та багато інших пакетів для вас. Для запуску цього немає і адміністративних прав.

-EDIT-

І його відкритий код, тому жодні нечіткі повідомлення, що благають вас придбати речі


13
і після його спробу msiexec робить кращу роботу (збереження каталогів, правильне іменування файлів тощо)
Майкл Шуберт

Здається, це не спрацювало для мене на win7 x64 із 32-розрядним 7-Zip. Чи є певний спосіб (не перетягування), який ви повинні сказати йому, щоб відкрити файл?
ebyrob

У контекстному меню має бути опція 7zip, коли ви клацніть правою кнопкою миші на файл - це дасть вам можливість витягти файли
Shekhar

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

@MichaelSchubert - це залежить. Якщо ви працюєте з машиною, що не працює під керуванням Windows, 7Zip - хороший варіант, оскільки версія командного рядка доступна і для інших систем. Залежить від випадку використання, який я б сказав.
Пер Лундберг

46

Існує також меншеmsi, який є повністю безкоштовним та відкритим кодом.

Немає рекламних повідомлень і нестача повідомлень, це правильно збереже структуру каталогів та імена файлів, має складний інтерфейс командного рядка , а також графічний інтерфейс користувача, який дозволяє переглядати файли, а також переглядати внутрішні таблиці MSI та інші атрибути MSI.


7
Дякую! Цей допоміг мені витягнути з MSI, який не витягуватиме командою msiexec, що говорить: "Установка адміністратора не підтримується" для <ім'я інсталяційного пакета>
axk

1
цей допоміг .. msiexec чомусь не витяг ..
Абдул Хамед

23

Існує вбудована підтримка MSI для вилучення файлів (установка адміністратора)

MSI або Windows Installer має вбудовану підтримку для цього - вилучення файлів з MSI-файла. Це називається адміністративною установкою . В основному він призначений як спосіб створити мережеву точку встановлення, з якої інсталяцію можна запустити на багатьох цільових комп'ютерах. Це гарантує, що вихідні файли завжди доступні для будь-яких операцій по ремонту.

Зауважте, що для встановлення адміністратора проти використання інструменту zip для вилучення файлів дуже відрізняється! Останній не буде коригувати розкладку медіа-таблиці таким чином, що пакет встановлений для використання зовнішніх файлів-вихідних файлів - це правильний спосіб. Завжди віддайте перевагу виконувати фактичну установку адміністратора над будь-якими вибагливими витягами. Що стосується стиснення, то фактично існують три різних алгоритми стиснення, які використовуються для файлів кабіни у форматі файлів MSI: MSZip, LZX та зберігання (нестиснений). З усім цим керується правильно, встановивши адміністратор.


Встановлення адміністратора має багато застосувань

Рекомендується детальніше ознайомитись із встановленням адміністратора, оскільки це корисна концепція, і я написав пост про stackoverflow: Яка мета адміністративної установки, ініційованої за допомогою msiexec / a? .

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

  • Витяг та перевірка файлів інсталятора
  • Розгортання за допомогою програмного забезпечення для управління системами, наприклад, SCCM (уникає величезних кешованих MSI-файлів у C: \ Windows \ Installer, оскільки файли витягуються з внутрішніх кабін)
  • Перепаковка корпоративних додатків
  • Ремонт, модифікація та саморемонтні операції
  • Виправлення та оновлення
  • Реклама MSI ( функція " запустити з джерела ")
  • Ряд інших менших деталей

Будь ласка, прочитайте посилання stackoverflow, пов’язане вище, для отримання більш детальної інформації. Це досить важлива концепція для системних адміністраторів , пакувальників додатків , розробників налаштувань , менеджерів випусків і навіть середнього користувача, щоб побачити, що вони встановлюють тощо.


Інсталяція адміністратора, практичне керівництво

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

Запустіть ці команди з підвищеного командного рядка та дотримуйтесь вказівок GUI для інтерактивних командних рядків:

  • Файли 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 також зможе витягти файли, але вони не будуть належним чином відформатовані.

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


Також дивіться цю відповідь: superuser.com/questions/307678/…
Stein Åsmul

Один і той же пост у stackoverflow: stackoverflow.com/a/24987512/129130 (я повинен видалити один, але обидва є авансовими, і вони були об'єднані нещодавно).
Stein Åsmul

8

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

UniExtract також може обробляти пакет EXE, упакований WISE або InstallShield, а також різноманітні інші стислі формати. О, і це безкоштовно.

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



1

ви можете використовувати Orca. Ця програма є частиною платформи SDK, але ви також можете завантажити її звідси http://astebner.sts.winisp.net/Tools/Orca.zip


3
Orca краще для вилучення метаданих, таких як файли, папки та таблиці реєстру. Це, як правило, не дуже корисно для вилучення фактичних файлів (абсолютно марно, якщо файли не зберігаються у двійковій таблиці).
Synetech

1

lessmsiнасправді тут найкращий вибір, оскільки він пропонує вам вибрати саме ті файли, які потрібно витягнути, і куди вони мають піти. Крім того, його можна легко встановити, використовуючи apt-getрамки для вікон, які називаються Choclatey. Наведений вище lessmsiвеб-сайт перемістився, і його також можна знайти / завантажити на GitHub . Крім того, ви можете знайти багато інших інструментів та інформації, пов'язаної з MSI, ТУТ. : (На жаль, не можу розмістити більше 2 посилань!)


1

Додати PeaZip до списку. Працював як чемпіон


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


0

Просто завантажте Universal Extractor . Він витягує всі типи файлів, включаючи .exe, .msi, .rar, .zip, .kgb та багато іншого.



0

Налаштування Installshield .exe (як ви їх називаєте) мають різні смаки, і, як правило, можна витягнути з них файли.

Installshield setup.exe може містити старі, застарілі інсталятори без MSI або нові інсталятори msi.

Якщо setup.exe завершує встановлення MSI, ви можете вказати setup.exe / a і буде запущена установка адміністратора MSI, що дозволяє визначити та вивести місце для файлів.

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

Також зауважте, що ще одним способом отримати ці файли є очищення темп-папки у вашій системі, інтерактивно запустити setup.exe, а потім дочекатися появи першого діалогового вікна. У більшості випадків інсталятор вилучив купу файлів у тимчасову папку. Іноді файли прості, інший раз у форматі CAB, але Winzip, 7Zip або навіть Universal Extractor (ще не перевіряли цей продукт) - вони можуть відкрити ці файли.


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