Wyodrębnij MSI z EXE

Chcę wyodrębnić MSI z konfiguracji EXE do publikacji w sieci.

Na przykład, używając Universal Extractor, ale nie działa w środowisku Java Runtime Environment.

Author: Stein Åsmul, 2009-10-10

8 answers

7-Zip powinno wystarczyć.

Za jego pomocą można wyodrębnić wszystkie pliki wewnątrz EXE (a więc również plik MSI).

Chociaż możesz to zrobić za pomocą 7-Zip, lepszym sposobem jest instalacja administracyjna, jak wskazał Stein Åsmul .

 22
Author: Burkhard,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:34:45

Dla projektów InstallShield opartych na MSI znalazłem następujące działanie:

setup.exe /s /x /b"C:\FolderInWhichMSIWillBeExtracted" /v"/qn"

To polecenie spowoduje wyodrębnienie MSI w katalogu, który możesz dowolnie określić i po cichu nieudaną odinstalowanie produktu.

Wiersz poleceń informuje o konfiguracji.exe, aby spróbować odinstalować Produkt (/x) i zrobić to po cichu (/s). Robiąc to, powinien wyodrębnić MSI do określonej lokalizacji (/b).

Polecenie / v przekazuje argumenty do Instalatora Windows, w tym case argument /qn. Argument / qn wyłącza wyjście GUI instalatora.

 95
Author: Daniel Dreibrodt,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-04 09:35:14

szybka lista: istnieje wiele typowych setup.exe pliki. Oto niektóre z nich w "krótkiej liście". więcej szczegółów tutaj (w kierunku dołu).

/ align = "left" / ekstrakt exe: (różne smaki do wypróbowania)

setup.exe /a
setup.exe /s /extract_all
setup.exe /s /extract_all:[path]
setup.exe /stage_only
setup.exe /extract "C:\My work"
setup.exe /x
setup.exe /x [path]
setup.exe /s /x /b"C:\FolderInWhichMSIWillBeExtracted" /v"/qn"

dark.exe -x outputfolder setup.exe

dark.exe jest to plik binarny WiX - install WiX Aby wyodrębnić konfigurację WiX.exe (od teraz). więcej (sekcja 4).

Zawsze jest:

setup.exe /?

Wyciąg MSI: msiexec.exe / File.msi ekstrakcja:

 msiexec /a File.msi
 msiexec /a File.msi TARGETDIR=C:\MyInstallPoint /qn

wiele narzędzi konfiguracyjnych: niemożliwe jest pokrycie wszystkich możliwych rodzajów setup.exe pliki. Mogą one zawierać różnego rodzaju przełączniki wiersza poleceń. istnieje tak wiele możliwych narzędzi, które można wykorzystać . (non-MSI,MSI, admin-tools, multi-platform, itd...).

NSIS / Inno: Common, darmowe narzędzia takie jak Inno Setup wydaje się, że ekstrakcja jest trudna (nieoficjalny unpacker , Nie wypróbowany przeze mnie, prowadzony przez virustotal.com).NSIS wydaje się, że używa zwykłych archiwów, które może otwierać i rozpakowywać standardowe oprogramowanie archiwalne (7-zip i in.).

ogólne Sztuczki: jedną sztuczką jest uruchomienie setup.exe i zajrzyj do 1) system's temp folder for extracted files. Inną sztuczką jest użycie 2) 7-Zip, WinRAR, WinZip lub podobne Archiwizuj narzędzia, aby sprawdzić, czy mogą odczytać format. Niektórzy twierdzą, że sukces przez 3) opening the setup.exe in Visual Studio. Nie Technika Używam. 4) And there is obviously application repackaging - przechwytywanie zmian dokonanych na komputerze po uruchomieniu konfiguracji i clean it up - wymaga specjalnego narzędzia (większość darmowych come and go, Advanced Installer Architect i AdminStudio są duże graczy).


Aktualizacja: szybka prezentacja różnych narzędzi wdrożeniowych używanych do tworzenia instalatorzy: jak utworzyć Instalator windows (obszerne linki).

I prostszy widok listy najczęściej używanych narzędzi programistycznych od teraz (2018), dla szybszego czytania i przeglądu.

I na przechowanie:


Tylko zastrzeżenie : plik setup.exe może zawierać wbudowany MSI, może to być Instalator w starym stylu (nie-MSI) lub może być zwykłym programem wykonywalnym bez możliwości ekstrakcji. W poniższej "dyskusji" najpierw przedstawiono wykorzystanie obrazów administracyjnych dla plików MSI i jak wyodrębnić pliki MSI z konfiguracji.pliki exe. Następnie dostarcza kilka linków do obsługi innych typów konfiguracji.pliki exe. Zobacz także sekcję komentarze.

UPDATE: kilka sekcji zostało dodanych bezpośrednio poniżej, przed opisem rozpakowania pliku MSI przy użyciu instalacji administracyjnej. Co najistotniejsze blurb o wydobywanie konfiguracji WiX.wiązki exe (new kid on the block). pamiętaj ,że "ostatnią deską ratunku", aby znaleźć wyodrębnione pliki instalacyjne, jest uruchomienie Instalatora, a następnie poszukaj wyodrębnionych plików w folderze tymczasowym (przytrzymaj klawisz Windows , dotknij R , wpisz %temp% lub %tmp% i naciśnij Enter ) - najpierw wypróbuj inne opcje - ze względu na niezawodność.

przepraszam za "uogólniony bałagan" z tym całym ciężkim inter-linking. wierzę, że znajdziesz to, czego potrzebujesz, jeśli kopiesz wystarczająco dużo linków, ale treść powinna być naprawdę lepiej posprzątana i zorganizowana.

Linki ogólne:

Zawartość ekstraktu:

Linki sprzedawcy:


WiX Toolkit & Burn Bundles (setup.pliki exe)

Tech Uwaga : Zestaw Narzędzi WiX dostarcza teraz setup.exe Pliki zbudowane za pomocą narzędzia bootstrapper Burn, które potrzebujesz własnego dekompilatora dark.exe do rozpakowania. Burn służy do budowania konfiguracji.pliki exe, które mogą zainstalować kilka osadzonych MSI lub plików wykonywalnych w określonej kolejności. Oto przykładowe polecenie ekstrakcji:

dark.exe -x outputfolder MySetup.exe

Przed uruchomieniem takiej ekstrakcji wymagane są pewne kroki wstępne:

  1. Pobierz i zainstaluj Zestaw Narzędzi WiX (link do poprzedniego odpowiedz z dodatkowymi informacjami kontekstowymi na WiX - a także linkiem do pobrania).
  2. po zainstalowaniu WiX, wystarczy otworzyć command prompt, CD do folderu, w którym znajduje się setup.exe. Następnie określ powyższe polecenie i naciśnij Enter
  3. folder wyjściowy będzie zawierał kilka podfolderów zawierających zarówno rozpakowane pliki MSI i EXE, jak i manifesty i plik zasobów dla GUI Burn (jeśli taki istniał w konfiguracji.plik exe na pierwszym miejscu oczywiście).
  4. możesz teraz, z kolei wyodrębnij zawartość wyodrębnionych plików MSI (lub plików EXE). W przypadku MSI oznaczałoby to uruchomienie instalacji Administratora - jak opisano poniżej.

Dzięki temu, że MSI jest w stanie uzyskać dostęp do Internetu, nie trzeba go instalować.]}

MSI lub Windows Installer ma wbudowaną obsługę tego - ekstrakcji plików z pliku MSI. To się nazywa instalacja administracyjna. Jest w zasadzie przeznaczony jako sposób na stworzenie Punkt instalacji sieciowej , z którego instalacja może być uruchomiona na wielu komputerach docelowych. Zapewnia to, że pliki źródłowe są zawsze dostępne dla wszelkich operacji naprawy.

Zauważ, że uruchamianie instalacji administratora w porównaniu z używaniem narzędzia zip do rozpakowywania plików jest bardzo różne! ten ostatni nie dostosuje układu multimediów tabeli multimediów tak, aby pakiet był ustawiony na używanie zewnętrznych plików źródłowych - co jest prawidłowym sposobem. Zawsze wolę uruchomić rzeczywistego administratora zainstaluj na dowolnym hacky zip ekstrakcji. Co do kompresji, w rzeczywistości są trzy różne algorytmy kompresji używany do plików cab wewnątrz formatu pliku MSI: MSZip, LZX i przechowywania (nieskompresowany). Wszystkie z nich są obsługiwane poprawnie, wykonując instalację administratora.

Ważne : Instalator Windows buforuje zainstalowane pliki MSI w systemie w celu naprawy, modyfikacji i odinstalowania scenariuszy. Począwszy od Windows 7 (MSI w wersji 5) pliki MSI są teraz buforowane w pełnym rozmiarze , aby uniknąć łamania sygnatury pliku, która uniemożliwia monit UAC przy uruchomieniu konfiguracji (znany problem z Vistą). Może to spowodować ogromny wzrost zużycia miejsca na dysku (kilka gigabajtów dla niektórych systemów). Aby zapobiec buforowaniu ogromnego pliku MSI, należy uruchomić admin-install pakietu przed instalacją. W ten sposób firma z odpowiednim wdrożeniem w zarządzanej sieci robi rzeczy, a ona usunie pliki cab i utworzy sieć punkt instalacji z małym plikiem MSI i plikami poza nim.


Admin-instalacje mają wiele zastosowań

Zaleca się przeczytanie więcej o instalacjach admina, ponieważ jest to przydatna koncepcja, a ja napisałem post na stackoverflow: jaki jest cel instalacji administracyjnej zainicjowanej za pomocą msiexec / a?.

W istocie instalacja admina jest ważna dla:

  • wyodrębnianie i kontrola instalatora pliki
      Aby dowiedzieć się, co jest faktycznie instalowane i gdzie]} [71]}aby upewnić się, że pliki wyglądają wiarygodnie i bezpiecznie (nie ma wirusów - złośliwe oprogramowanie i wirusy mogą nadal ukrywać się w pliku MSI) [76]}
  • wdrożenie za pomocą oprogramowania do zarządzania systemami (na przykład SCCM)
  • przepakowywanie aplikacji korporacyjnych
  • naprawy, modyfikacje i operacje samonaprawy
  • Patching & upgrades
  • Reklama MSI (między innymi dotyczy to funkcji" run from source", gdzie można uruchomić bezpośrednio z udziału sieciowego i zainstalować tylko skróty i dane rejestru)
  • kilka innych mniejszych szczegółów

Proszę przeczytać post stackoverflow linkowany powyżej, aby uzyskać więcej informacji. Jest to dość ważna koncepcja dla administratorów systemu , application packagers, Programiści instalacji, release managerów , i nawet przeciętny użytkownik , aby zobaczyć co instalują itp...


Admin-instalacja, praktyczne how-to

Można wykonać admin-install na kilka różnych sposobów w zależności od sposobu dostarczenia instalatora. Zasadniczo jest dostarczany jako plik MSI lub zawinięty w konfigurację .plik exe .

Uruchom te polecenia z podwyższonego wiersza polecenia i postępuj zgodnie z instrukcjami w GUI dla polecenia interaktywnego linie:

  • Pliki MSI :

    msiexec /a File.msi
    

    To jest do uruchomienia z GUI, można to zrobić cicho zbyt:

    msiexec /a File.msi TARGETDIR=C:\MyInstallPoint /qn
    
  • / align = "left" / pliki exe :

    setup.exe /a
    

A konfiguracja.plik exe może być również konfiguracją stylu starszego (nie-MSI) lub typem plikuInstallscript MSI - znanym błędnym typem projektu Installshield z hybrydowym, niestandardowym formatem MSI. Jest to zasadniczo MSI z niestandardowym, bardziej zaawansowany GUI, ale jest również pełen błędów.

For legacy setup.pliki exe /a nic nie zrobią, ale możesz spróbować / extract_all: [path] switch jak wyjaśniono w ten pdf. Jest to dobre odniesienie do cichej instalacji i innych rzeczy, jak również. Innym zasobem jest ta lista instalacji Installshield.parametry wiersza poleceń exe .

MSI patch files (*.MSP) może być zgłoszony do admina image Aby poprawnie wyodrębnić swoje pliki. 7Zip będzie również mógł wyodrębnić pliki, ale nie będą one poprawnie sformatowane.

Wreszcie - ostatnia deska ratunku - jeśli nie działa żaden inny sposób, możesz zdobyć wyodrębnione pliki instalacyjne, czyszcząc folder tymczasowy w systemie, uruchom konfigurację.exe interaktywnie, a następnie poczekaj, aż pojawi się pierwsze okno dialogowe. W większości przypadków instalator rozpakuje kilka plików do folderu tymczasowego. Czasami pliki są zwykły, innym razem w formacie CAB, ale Winzip, 7Zip lub nawet Universal Extractor ( nie testowałem tego produktu) - może być w stanie je otworzyć.

 56
Author: Stein Åsmul,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-02-27 00:41:01

Zgaduję, że to pytanie dotyczyło głównie InstallShield, biorąc pod uwagę tagi, ale jeśli ktoś tu przyjdzie z tym samym problemem dla pakietów opartych na WiX (i ewentualnie innych), po prostu zadzwoń do instalatora z / extract, tak:

C:\> installer.exe /extract

To umieści MSI w folderze obok instalatora.

 15
Author: javawizard,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-12-18 02:31:59

Zaczynając od parametru:

setup.exe /A

Prosi o zapisanie dołączonych plików (w tym MSI).

Może to zależeć od oprogramowania, które stworzyło setup.exe.

 8
Author: Curt,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-06-02 05:59:05

Jedynym sposobem na to jest uruchomienie exe i odebranie MSI. Musisz zadbać o to, że jeśli zmieniasz MSI za pomocą MST, mogą się zgubić.

Używam wiersza poleceń wsadowych:

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
 6
Author: Cedric Debattista,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-27 06:27:51

Uruchom instalator, ale nie naciskaj przycisku Install >. Then

cd "%AppData%\..\LocalLow\Sun\Java"

I znajdź swój plik MSI w jednym z podkatalogów (np. jre1.7.0_25).

Zauważ, że Data1.cab z tego podkatalogu będzie również wymagany.

 3
Author: Roman Boiko,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-18 16:53:05

Nie ma potrzeby używać żadnego narzędzia !! Możemy pójść prostą drogą.

Nie wiem, które narzędzie zbudowało Twój samorozpakowujący program instalacyjny, więc będę musiał podać ogólną odpowiedź.

Większość programów tego typu rozpakowuje plik pakietu (.msi) do katalogu TEMP. To zachowanie jest domyślnym zachowaniem programisty InstallShield.

Bez dodatkowych informacji polecam po prostu uruchomić konfigurację i po pierwszym oknie MSI wyświetlany, możesz sprawdzić swój katalog tymczasowy pod kątem nowo utworzonego podkatalogu lub pliku MSI. Przed anulowaniem/zatrzymaniem instalatora wystarczy skopiować ten plik MSI z folderu TEMP. Następnie możesz anulować instalację.

 0
Author: Ajit Medhekar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-23 12:05:50