Wie extrahiere ich Dateien aus einem MSI-Paket?


192

Wir haben einige alte Patches, von denen wir die Dateien erhalten möchten, möchten aber nicht die Zeit damit verbringen, sie auf einem Computer zu installieren.

Kann jemand eine Möglichkeit empfehlen, Dateien aus einem MSI-Installationspaket zu extrahieren?


Können Sie weitere Informationen zu dem genauen MSI-Installationspaket, das Sie extrahieren möchten, Ihren Betriebssystemdetails usw.
bereitstellen?

Antworten:


212

Greifen Sie zunächst auf eine Eingabeaufforderung mit erhöhten Rechten zu, um dies zu tun:

  1. Klicken Sie auf die Schaltfläche Start.

  2. Klicken Sie auf Alle Programme.

  3. Gehen Sie in Zubehör.

  4. Klicken Sie mit der rechten Maustaste auf Eingabeaufforderung.

  5. Wählen Sie Als Administrator ausführen.

  6. Wenn die UAC-Eingabeaufforderung angezeigt wird, klicken Sie auf Weiter.

Sobald Sie Ihre Eingabeaufforderung mit erhöhten Rechten haben, geben Sie Folgendes ein:

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

Verwenden Sie die gewünschten Positionen, um die oben genannten Dateipfade auszufüllen. Beispiel:

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

5
Ein weiteres schnelles Google hat dies aufgedeckt : legroom.net/software/uniextract Ich würde es vorziehen, eingebaute Programme zu verwenden, aber es sieht nach einem akzeptablen Dienstprogramm aus.

5
Soweit ich weiß (von msiexec /?), Installiert dieser Befehl das Programm an dieser Stelle. Ich glaube nicht, dass dies der ursprüngliche Anforderer im Sinn hatte.

8
@ user6738 Ich habe dies getestet und es installiert die Software nicht. Die Software ist weder im AppWiz zu finden noch kann sie über die MSI deinstalliert werden und meldet, dass sie nicht installiert ist. Es extrahiert wirklich die Dateien aus meinem Test.
Adam Caviness

17
Ich habe dies auf einem gesperrten Win8.1-Computer (Arbeits-Laptop) ausgeführt und es sollte beachtet werden, dass zum Extrahieren von Dateien KEINE Administratorrechte erforderlich sind.msi .
MattDMo

5
Gute Antwort! Ich habe dies in eine extractMSI.cmdDatei geschrieben: msiexec /a %1 /qb TARGETDIR="%~d1%~p1%~n1" || pauseund es zu den "Öffnen mit ..." Optionen der msi-Datei hinzugefügt
Tobias Kienzler

75

Verwenden Sie 7Zip .
Es wird MSI, CAB, einige EXE-Dateien und viel mehr Pakete für Sie entpacken. Es sind auch keine Administratorrechte erforderlich, um dies auszuführen.

-BEARBEITEN-

Und es ist Open Source, also keine nervenden Botschaften, die dich bitten, das Zeug zu kaufen


13
und nachdem msiexec es ausprobiert hat, macht es msiexec besser (Verzeichnisse erhalten, Dateien richtig benennen usw.)
Michael Schubert

Dies schien auf Win7 x64 mit 32-Bit 7-Zip nicht zu funktionieren. Gibt es eine bestimmte Möglichkeit (nicht Drag-Drop), die Sie angeben müssen, um die Datei zu öffnen?
Ebyrob

Es sollte eine Option von 7zip im Kontextmenü geben, wenn Sie mit der rechten Maustaste auf die Datei klicken - es gibt Ihnen die Möglichkeit, die Dateien zu extrahieren
Shekhar

7
Ich sehe viele Dinge mit einem Ausrufezeichen vor den eigentlichen Dateien. Ich denke, entweder hat sich etwas geändert oder ich habe eine ungerade msi-Datei. Ich habe 7-Zip 9.20 ausprobiert.
Mlt

@MichaelSchubert - es kommt darauf an. Wenn Sie einen Nicht-Windows-Computer ausführen, ist 7Zip eine gute Option, da die Befehlszeilenversion auch für andere Systeme verfügbar ist. Kommt auf den Anwendungsfall an würde ich sagen.
Per Lundberg

46

Es gibt auch Lessmsi, das völlig kostenlos und Open Source ist.

Es gibt keine Ankündigungen oder nervenden Nachrichten, die Verzeichnisstruktur und Dateinamen werden korrekt beibehalten, die Befehlszeilenschnittstelle ist hochentwickelt und die grafische Benutzeroberfläche ermöglicht das Durchsuchen der Dateien sowie das Anzeigen interner MSI-Tabellen und anderer MSI-Attribute.


7
Vielen Dank! Dieser hat mir geholfen, aus einer MSI zu extrahieren, die nicht mit dem Befehl msiexec extrahiert werden konnte: "admin install is not supported" für <Name des Installationspakets>
Axk

1
Dieser half .. msiexec nicht aus irgendeinem Grund extrahieren ..
Abdul Hameed

23

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

MSI oder Windows Installer bieten hierfür eine integrierte Unterstützung - das Extrahieren von Dateien aus einer MSI-Datei. Dies wird als Administratorinstallation bezeichnet . Grundsätzlich ist dies eine Möglichkeit, einen Netzwerkinstallationspfad zu erstellen , von dem aus die Installation auf vielen Zielcomputern ausgeführt werden kann. Dies stellt sicher, dass die Quelldateien für alle Reparaturvorgänge immer verfügbar sind.

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 so an, dass 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. Für die Komprimierung gibt es drei verschiedene Komprimierungsalgorithmen, die für die CAB-Dateien im MSI-Dateiformat verwendet werden: MSZip, LZX und Speichern (nicht komprimiert). Alle diese Vorgänge werden bei einer Administratorinstallation ordnungsgemäß ausgeführt.


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: Welchen Zweck hat die administrative Installation, die mit msiexec / a initiiert wurde? .

Im Wesentlichen ist die Admin-Installation wichtig für:

  • Extrahieren und Überprüfen der Installationsdateien
  • Bereitstellung über Systemverwaltungssoftware, z. B. SCCM (vermeidet große zwischengespeicherte MSI-Dateien in C: \ Windows \ Installer, da Dateien aus internen Kabinen extrahiert werden)
  • Umpacken von Unternehmensanwendungen
  • Reparatur, Änderung und Selbstreparatur
  • Patchen & Upgrades
  • MSI-Werbung (die " Run from Source " -Funktion)
  • Eine Reihe weiterer kleinerer Details

Bitte lesen Sie den oben verlinkten Stackoverflow-Beitrag für weitere Details. Es ist ein ziemlich wichtiges Konzept für Systemadministratoren , Application Packager , Setup-Entwickler , Release-Manager und sogar den durchschnittlichen Benutzer, zu sehen, was sie usw. installieren.


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 ausgeliefert oder in eine setup.exe-Datei eingebunden .

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
    

Bei einer setup.exe- Datei kann es sich auch um eine ältere Installation (ohne MSI) oder um einen gefürchteten Installscript-MSI- Dateityp handeln - einen bekannten fehlerhaften Installshield-Projekttyp mit hybriden, nicht standardkonformen MSI-Formaten. Es handelt sich im Wesentlichen um eine MSI mit einer benutzerdefinierten, erweiterten Benutzeroberfläche, die jedoch auch voller Fehler ist.

Für ältere setup.exe-Dateien wird das / a nichts tun, aber Sie können den Schalter / extract_all: [path] verwenden, wie in diesem 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 Administrator-Image angewendet werden, um dessen Dateien ordnungsgemäß zu extrahieren. 7Zip kann die Dateien auch extrahieren, sie werden jedoch nicht richtig formatiert.

Wenn keine andere Möglichkeit besteht, können Sie an extrahierte Setup-Dateien gelangen, 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.



Derselbe Beitrag auf stackoverflow: stackoverflow.com/a/24987512/129130 (ich sollte einen löschen, aber beide sind upvoted und sie wurden kürzlich zusammengeführt).
Stein Åsmul

8

Ich würde UniExtract empfehlen , um die Lösung von neoice noch einfacher zu machen. Es funktioniert genauso, ist jedoch automatisierter und ermöglicht mehrere Methoden zum Extrahieren von MSI-Dateien, nicht nur eine Administratorinstallation (wie von seiner Lösung verwendet).

UniExtract kann auch mit WISE oder InstallShield gepackte EXE-Dateien sowie eine Vielzahl anderer komprimierter Formate verarbeiten. Oh, und es ist kostenlos.

Universal Extractor ist ein Programm, das genau das tut, was es sagt: Dateien aus beliebigen Archiven extrahieren, sei es eine einfache ZIP-Datei, ein Installationsprogramm oder sogar ein Windows Installer-Paket (.msi).



1

Sie können Orca verwenden. Diese App ist Teil des Platform SDK. Sie können sie jedoch auch von folgender Website herunterladen: http://astebner.sts.winisp.net/Tools/Orca.zip


3
Orca eignet sich besser zum Extrahieren von Metadaten wie Datei-, Ordner- und Registrierungstabellen. Es ist im Allgemeinen nicht sehr nützlich, um die tatsächlichen Dateien zu extrahieren (völlig nutzlos, wenn die Dateien nicht in der Binärtabelle gespeichert sind).
Synetech

1

lessmsiist hier wirklich die beste Wahl, da Sie genau auswählen können, welche Dateien extrahiert werden sollen und wohin sie gehen sollen. Darüber hinaus kann es einfach mit dem apt-getFramework für Windows installiert werden , genannt Choclatey. Die oben genannte lessmsiWebsite ist umgezogen und kann auch bei GitHub heruntergeladen werden . Darüber hinaus finden Sie HIER viele andere Tools und MSI-bezogene Informationen. : (Sorry, ich kann nicht mehr als 2 Links posten!)


1

Fügen Sie der Liste PeaZip hinzu . Arbeitete wie ein Champion


Bitte lesen Sie Wie empfehle ich Software für einige Tipps, wie Sie Software empfehlen sollten. Zumindest sollten Sie mehr als nur einen Link bereitstellen, zum Beispiel einige zusätzliche Informationen zur Software selbst, zum Beispiel wie sie zur Lösung des Problems in der Frage verwendet werden können.
DavidPostill




0

Installshield .exe-Setups (wie Sie sie nennen) gibt es in vielen Varianten, und es ist im Allgemeinen möglich, Dateien daraus zu extrahieren.

Eine Installshield-setup.exe kann alte, ältere Nicht-MSI-Installationsprogramme oder neue MSI-Installationsprogramme enthalten.

Wenn die Datei setup.exe ein MSI-Setup umschließt , können Sie setup.exe / a angeben und die Administratorinstallation des MSI wird ausgeführt, sodass Sie den Speicherort für die Dateien angeben und ausgeben können.

Wenn es sich bei setup.exe um ein älteres Installshield-Setup handelt, unterstützt es möglicherweise das Extrahieren von Dateien über die Option / extract_all: [Pfad] . Siehe hier (aktualisiert im Juli 2011, Acresso-Link war nicht mehr gültig, erneut aktualisiert im Februar 2014 - jetzt auf itninja verweisend).

Beachten Sie auch , dass eine andere Art und Weise halten , diese Dateien zu erhalten , ist die Temp - Ordner auf Ihrem System zu reinigen, starten Sie die setup.exe interaktiv und dann warten , bis der erste Dialog zu zeigen. 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.


Meine Voraussetzungen dafür sind jetzt erfüllt - aber ich werde versuchen, was Sie irgendwann vorschlagen, um zu sehen, ob es funktioniert hätte. Danke für die Antwort.
Martin
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.