it-swarm.com.de

Extrahieren Sie MSI aus EXE

Ich möchte das MSI eines EXE-Setups extrahieren, um es über ein Netzwerk zu veröffentlichen.

Beispielsweise mit Universal Extractor, aber es funktioniert nicht für Java Runtime Environment.

47
emdadgar2

7-Zip sollte den Trick tun.

Damit können Sie alle Dateien in der EXE-Datei (also auch eine MSI-Datei) extrahieren.

Obwohl Sie dies mit 7-Zip machen können, ist die administrative Installation besser, wie von Stein Åsmul ausgeführt.

18
Burkhard

Für InstallShield MSI-basierte Projekte habe ich Folgendes gefunden:

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

Dieser Befehl führt zu einer extrahierten MSI in einem Verzeichnis, das Sie frei angeben können, und eine unbeaufsichtigte Deinstallation des Produkts.

Die Befehlszeile weist die setup.exe grundsätzlich an, zu versuchen, das Produkt (/ x) zu deinstallieren, und dies im Hintergrund (/ s). Dabei sollte das MSI an einen bestimmten Ort (/ b) extrahiert werden.

Der Befehl/v übergibt Argumente an Windows Installer, in diesem Fall das Argument/qn. Das Argument/qn deaktiviert alle GUI-Ausgaben des Installationsprogramms.

86

Quick List : Es gibt eine Reihe gebräuchlicher Typen von setup.exe -Dateien. Hier sind einige davon in einer "Shortlist". Weitere Einzelheiten hier (nach unten).

Setup.exe Extract: (verschiedene Geschmacksrichtungen zum Ausprobieren)

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 ist eine WiX-Binärdatei - Installieren Sie WiX , um eine WiX-setup.exe (ab sofort) zu extrahieren. More (Abschnitt 4)).

Es gibt immer:

setup.exe /?

MSI-Extrakt: msiexec.exe/File.msi-Extraktion:

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

Viele Setup-Tools : Es ist unmöglich, alle möglichen Arten von setup.exe -Dateien abzudecken. Sie können alle Arten von Befehlszeilenschaltern enthalten. Es gibt so viele mögliche Werkzeuge, die verwendet werden können . ( non-MSI , MSI , admin-tools , multi-platform , etc ...).

NSIS/Inno: Commmon, kostenlose Tools wie Inno Setup erschweren die Extraktion ( inoffizieller Entpacker , nicht von mir ausprobiert, von virustotal.com ausgeführt). Während NSIS scheint reguläre Archive zu verwenden, die von Standard-Archivierungssoftware (7-Zip et al.) geöffnet und extrahiert werden können.

Allgemeine Tricks : Ein Trick besteht darin, den setup.exe zu starten und in den 1)system's temp folder for extracted files zu schauen. Ein weiterer Trick besteht darin, 2)7-Zip, WinRAR, WinZip oder ähnliche Archivierungstools zu verwenden, um festzustellen, ob sie das Format lesen können. Einige behaupten Erfolg von 3)opening the setup.exe in Visual Studio. Keine Technik, die ich benutze. 4)And there is obviously application repackaging - Aufzeichnen der Änderungen, die nach dem Ausführen eines Setups an einem Computer vorgenommen wurden, und Bereinigen - erfordert ein spezielles Tool (Die meisten kostenlosen Programme kommen und gehen, Advanced Installer Architect und AdminStudio spielen eine große Rolle ).


UPDATE: Eine kurze Darstellung verschiedener Bereitstellungstools zum Erstellen von Installationsprogrammen: Erstellen von Windows Installer (umfassende Links).

Und ein einfacheres Listenansicht der am häufigsten verwendeten Entwicklungstools ab sofort (2018)), um das Lesen zu beschleunigen und den Überblick zu behalten.

Und zur Aufbewahrung:


Nur ein Haftungsausschluss: Eine setup.exe-Datei kann eine eingebettete MSI-Datei enthalten, ein Legacy-Installationsprogramm (kein MSI-Installationsprogramm) oder eine reguläre ausführbare Datei ohne jegliche Extraktionsmöglichkeit. In der folgenden "Diskussion" wird zunächst die Verwendung von Administratorabbildern für MSI-Dateien und das Extrahieren von MSI-Dateien aus setup.exe-Dateien erläutert. Anschließend werden einige Links zum Verarbeiten anderer Arten von setup.exe-Dateien bereitgestellt. Siehe auch den Kommentarbereich.

UPDATE: Einige Abschnitte wurden jetzt direkt vor der Beschreibung des MSI-Dateiextrakts mithilfe der Administratorinstallation hinzugefügt. Am wichtigsten ist ein Klappentext zum Extrahieren von WiX setup.exe-Bundles (neues Kind auf dem Block). Denken Sie daran, dass ein "letzter Ausweg", um extrahierte Setup-Dateien zu finden, darin besteht, das Installationsprogramm zu starten und dann im temporären Ordner nach extrahierten Dateien zu suchen (Gedrückt halten) Windows Key, Zapfhahn RGeben Sie %temp% oder %tmp% ein und drücken Sie Enter) - probieren Sie zuerst die anderen Optionen aus - aus Gründen der Zuverlässigkeit.

Entschuldigung für das "verallgemeinerte Durcheinander" mit all diesen schweren Verknüpfungen. Ich glaube, dass Sie finden werden, was Sie brauchen, wenn Sie genug in den Verknüpfungen graben, aber Der Inhalt sollte wirklich aufgeräumt und besser organisiert werden.

Allgemeine Links:

Inhalt extrahieren:

Lieferantenlinks:


WiX Toolkit & Burn Bundles (setup.exe-Dateien)

Technischer Hinweis: Das WiX-Toolkit stellt jetzt setup.exe-Dateien bereit, die mit dem Bootstrapper-Tool Burn erstellt wurden. Zum Extrahieren benötigen Sie den eigenen dark.exe-Dekompiler des Toolkits. Brennen wird zum Erstellen von setup.exe-Dateien verwendet, mit denen mehrere eingebettete MSI-Dateien oder ausführbare Dateien in einer angegebenen Reihenfolge installiert werden können. Hier ist ein Beispiel für einen Extraktionsbefehl:

dark.exe -x outputfolder MySetup.exe

Bevor Sie eine solche Extraktion ausführen können, sind einige erforderliche Schritte erforderlich:

  1. Laden Sie das WiX-Toolkit herunter und installieren Sie es (Verknüpfung zu einer vorherigen Antwort mit einigen zusätzlichen Kontextinformationen zu WiX - sowie den Download-Link).
  2. Öffnen Sie nach der Installation von WiX einfach einen command Prompt, CD in dem Ordner, in dem sich der setup.exe befindet. Geben Sie dann den obigen Befehl ein und drücken Sie Enter
  3. Der Ausgabeordner enthält einige Unterordner, die sowohl extrahierte MSI- als auch EXE-Dateien sowie Manifeste und Ressourcendateien für die Brenn-GUI enthalten (sofern diese überhaupt in der Datei setup.exe vorhanden sind).
  4. Sie können nun wiederum den Inhalt der extrahierten MSI-Dateien (oder EXE-Dateien) extrahieren. Für ein MSI würde dies bedeuten, dass eine Administratorinstallation ausgeführt wird - wie unten beschrieben.

Es gibt eine integrierte MSI-Unterstützung für die Dateiextraktion (Admin-Installation)

MSI oder Windows Installer nterstützt dies - das Extrahieren von Dateien aus einer MSI-Datei. Dies wird als administrative Installation bezeichnet. Es ist im Wesentlichen als eine Möglichkeit gedacht, einen Netzwerkinstallationspfad zu erstellen, von dem aus die Installation auf vielen Zielcomputern ausgeführt werden kann. Dadurch wird sichergestellt, dass die Quelldateien vorhanden sind sind immer für Reparaturarbeiten verfügbar.

Beachten Sie, dass die Ausführung einer Administratorinstallation im Vergleich zur Verwendung eines Zip-Tools zum Extrahieren der Dateien sehr unterschiedlich ist! Letzteres passt das Medienlayout der Medientabelle nicht an, sodass das Paket für die Verwendung externer Quelldateien konfiguriert ist. Dies ist der richtige Weg. Ziehen Sie es immer vor, die eigentliche Administratorinstallation über alle hackigen Zip-Extraktionen auszuführen. Bei der Komprimierung gibt es tatsächlich drei verschiedene Komprimierungsalgorithmen für die cab-Dateien im MSI-Dateiformat: MSZip, LZX und Speichern (unkomprimiert). Alle diese werden von einem Administrator korrekt behandelt Installieren.

Wichtig: Windows Installer speichert installierte MSI-Dateien im Cache , um Reparatur-, Änderungs- und Deinstallationsszenarien durchzuführen. Ab Windows 7 (MSI Version 5) werden die MSI-Dateien jetzt in voller Größe zwischengespeichert, um dies zu vermeiden Unterbrechen der Dateisignatur, die den Start der UAC-Eingabeaufforderung beim Setup verhindert (ein bekanntes Vista-Problem). Dies kann zu einem enormen Anstieg des Speicherplatzverbrauchs führen (bei einigen Systemen mehrere Gigabyte). Um das Zwischenspeichern einer großen MSI-Datei zu verhindern, sollten Sie einen Administrator ausführen -Installation des Pakets vor der Installation: So würde ein Unternehmen mit ordnungsgemäßer Bereitstellung in einem verwalteten Netzwerk vorgehen und die CAB-Dateien entfernen und einen Netzwerkinstallationspunkt mit einer kleinen MSI-Datei und Dateien daneben erstellen.


Admin-Installationen haben viele Verwendungszwecke

Es wird empfohlen, mehr über Admin-Installationen zu lesen, da dies ein nützliches Konzept ist. Außerdem habe ich einen Beitrag zum Stackoverflow verfasst: Was ist der Zweck der administrativen Installation, die mit msiexec/a initiiert wurde? .

Die Admin-Installation ist im Wesentlichen wichtig für:

  • Extrahieren und Überprüfen der Installationsdateien
    • Um eine Vorstellung davon zu bekommen, was und wo tatsächlich installiert wird
    • Um sicherzustellen, dass die Dateien vertrauenswürdig und sicher aussehen (keine Viren - Malware und Viren können sich dennoch in der MSI-Datei verstecken)
  • Bereitstellung über Systemverwaltungssoftware (z. B. SCCM )
  • Umpacken von Unternehmensanwendungen
  • Reparatur, Änderung und Selbstreparatur
  • Patchen & Upgrades
  • MSI-Ankündigung (dazu gehört unter anderem die Funktion "run from source", mit der Sie direkt von einer Netzwerkfreigabe aus ausführen und nur Verknüpfungen und Registrierungsdaten installieren können)
  • Eine Reihe weiterer kleinerer Details

Bitte lesen Sie den oben verlinkten Stackoverflow-Beitrag für weitere Details. Für Systemadministratoren, Anwendungspaketierer, Setup-Entwickler, Release-Manager und selbst Durchschnittsbenutzer ist es ein wichtiges Konzept, zu sehen, was sie installieren usw...


Admin-Installation, praktische Anleitung

Sie können eine Administrator-Installation auf verschiedene Arten durchführen, je nachdem, wie das Installationsprogramm ausgeliefert wird. Im Wesentlichen wird es entweder als MSI-Datei geliefert oder in eine setup.exe-Datei eingepackt.

Führen Sie diese Befehle an einer Eingabeaufforderung mit erhöhten Rechten aus und befolgen Sie die Anweisungen in der GUI für die interaktiven Befehlszeilen:

  • MSI-Dateien:

    msiexec /a File.msi
    

    das läuft mit GUI, Sie können es auch im Hintergrund tun:

    msiexec /a File.msi TARGETDIR=C:\MyInstallPoint /qn
    
  • setup.exe-Dateien:

    setup.exe /a
    

Eine setup.exe -Datei kann auch ein Legacy-Setup (ohne MSI) oder der gefürchtete Installscript MSI -Dateityp sein - ein bekannter fehlerhafter Installshield-Projekttyp mit hybriden Nicht-Standards. konformes MSI-Format. Es handelt sich im Wesentlichen um eine MSI mit einer benutzerdefinierten, erweiterten Benutzeroberfläche, die jedoch auch voller Fehler ist.

Für legacy setup.exe-Dateien wird /a nichts tun, aber Sie können den Schalter /extract_all: [path] verwenden, wie in this pdf erläutert. Es ist eine gute Referenz für die unbeaufsichtigte Installation und andere Dinge. Eine weitere Ressource ist diese Liste der Befehlszeilenparameter von Installshield setup.exe .

MSI-Patch-Dateien (* .MSP) können auf ein Admin-Image angewendet werden , um die Dateien ordnungsgemäß zu extrahieren. 7Zip kann die Dateien ebenfalls extrahieren, sie werden jedoch nicht ordnungsgemäß formatiert.

Schließlich - der letzte Ausweg - können Sie, wenn keine andere Möglichkeit besteht, auf extrahierte Setup-Dateien zugreifen, indem Sie den temporären Ordner auf Ihrem System löschen, die Datei setup.exe interaktiv starten und dann warten, bis das erste Dialogfeld angezeigt wird . In den meisten Fällen hat das Installationsprogramm eine Reihe von Dateien in einen temporären Ordner extrahiert. Manchmal sind die Dateien normal, manchmal im CAB-Format, aber Winzip, 7Zip oder sogar Universal Extractor (haben dieses Produkt nicht getestet) können diese möglicherweise öffnen.

41
Stein Åsmul

Ich vermute, diese Frage bezog sich hauptsächlich auf InstallShield angesichts der Tags. Falls jedoch hier jemand das gleiche Problem für WiX-basierte Pakete (und möglicherweise auch andere) hat, rufen Sie einfach das Installationsprogramm mit/extract auf:

C:\> installer.exe /extract

Dadurch wird das MSI neben dem Installationsprogramm in dem Ordner abgelegt.

15
javawizard

Beginnen mit dem Parameter:

setup.exe /A

fragt nach dem Speichern der enthaltenen Dateien (einschließlich MSI).

Dies kann von der Software abhängen, die den setup.exe erstellt hat.

7
Curt

Die einzige Möglichkeit, dies zu tun, besteht darin, das Exe auszuführen und das MSI zu sammeln. Die Sache, die Sie beachten müssen, ist, dass, wenn Sie das MSI mit MST umwandeln, diese möglicherweise verloren gehen. 

Ich benutze diese Batch-Kommandozeile:

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

Spusťte instalační program, ale nestiskněte klávesuInstall >tlačítko. Pak

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

a najděte soubor MSI v jednom z podadresářů (např. jre1.7.0_25).

Všimněte si, že bude vyžadováno také Data1.cab z tohoto podadresáře.

3
Roman Boiko

Es ist kein Werkzeug nötig !! Wir können dem einfachen Weg folgen. 

Ich weiß nicht, mit welchem ​​Tool Ihr selbstextrahierendes Setup-Programm erstellt wurde. Daher muss ich eine allgemeine Antwort geben. 

Die meisten Programme dieser Art extrahieren die Paketdatei (.msi) in das TEMP-Verzeichnis. Dieses Verhalten ist das Standardverhalten von InstallShield Developer.

Ohne zusätzliche Informationen würde ich empfehlen, das Setup einfach zu starten. Sobald das erste MSI-Dialogfeld angezeigt wird, können Sie Ihr TEMP-Verzeichnis auf ein neu erstelltes Unterverzeichnis oder eine MSI-Datei überprüfen. Bevor Sie ein Installationsprogramm abbrechen oder stoppen, kopieren Sie diese MSI-Datei aus dem TEMP-Ordner. Danach können Sie die Installation abbrechen. 

0
Ajit Medhekar