web-dev-qa-db-fra.com

Extraire le MSI de EXE

Je veux extraire le MSI d'une installation EXE pour publier sur un réseau.

Par exemple, utiliser Universal Extractor, mais cela ne fonctionne pas pour Java Runtime Environment.

47
emdadgar2

7-Zip devrait faire l'affaire.

Avec celui-ci, vous pouvez extraire tous les fichiers contenus dans le fichier EXE (donc aussi un fichier MSI).

Bien que vous puissiez le faire avec 7-Zip, le meilleur moyen est l'installation administrative, comme indiqué par Stein Åsmul .

18
Burkhard

Pour les projets InstallShield basés sur MSI, les éléments suivants ont fonctionné:

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

Cette commande mènera à un fichier MSI extrait dans un répertoire que vous pouvez spécifier librement et à une désinstallation silencieuse du produit.

La ligne de commande indique en gros à setup.exe de tenter de désinstaller le produit (/ x) et de le faire en mode silencieux (/ s). Ce faisant, vous devez extraire le fichier MSI à un emplacement spécifique (/ b).

La commande/v transmet les arguments à Windows Installer, dans ce cas l'argument/qn. L'argument/qn désactive toute sortie d'interface graphique du programme d'installation.

86
Daniel Dreibrodt

Quick List: Il existe un certain nombre de types courants de fichiers setup.exe. En voici quelques unes dans une "short-list". Plus de détails étoffés ici (vers le bas).

Setup.exe Extrait: (différentes versions à essayer)

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 est un fichier binaire WiX - installez WiX pour extraire un WiX setup.exe (à partir de maintenant). Plus (section 4).

Il y a toujours:

setup.exe /?

MSI Extract:msiexec.exe/File.msi:

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

Plusieurs outils d'installation: Il est impossible de couvrir tous les types de fichiers possibles setup.exe. Ils peuvent comporter toutes sortes de commutateurs de ligne de commande différents. Il y a tellement d’outils possibles qui peuvent être utilisés . ( non-MSI , MSI , admin-tools , multi-platform , etc...).

NSIS/Inno: Commmon, des outils gratuits tels que Inno Setup semblent rendre l'extraction difficile ( décompresseur non officiel , non testé par moi, géré par virustotal.com). Considérant que NSIS semble utiliser des archives classiques qu'un logiciel d'archivage standard (7-Zip et autres) peut ouvrir et extraire.

General Tricks: Une astuce consiste à lancer le setup.exe et à regarder dans le 1)system's temp folder for extracted files. Une autre astuce consiste à utiliser 2)7-Zip, WinRAR, WinZip ou des outils d’archivage similaires pour voir s’ils peuvent lire le format. Certains prétendent avoir réussi par 3)opening the setup.exe in Visual Studio. Ce n'est pas une technique que j'utilise. 4)And there is obviously application repackaging - la capture des modifications apportées à un ordinateur une fois la configuration exécutée et son nettoyage - nécessite un outil spécial (la plupart des outils gratuits vont et viennent, Advanced Installer Architect et AdminStudio sont de gros joueurs).


UPDATE: Présentation rapide des différents outils de déploiement utilisés pour créer les programmes d'installation: Comment créer un programme d'installation Windows (liens complets).

Et une vue plus simple liste des outils de développement les plus utilisés dès maintenant (2018), pour une lecture plus rapide et une vue d'ensemble.

Et pour la garde:


Juste une clause de non-responsabilité: Un fichier setup.exe peut contenir un fichier MSI intégré, un programme d'installation de style hérité (non-MSI) ou un simple fichier exécutable standard, sans aucun moyen d'extraction. La "discussion" ci-dessous présente tout d'abord l'utilisation des images d'administrateur pour les fichiers MSI et la procédure d'extraction des fichiers MSI à partir des fichiers setup.exe. Ensuite, il fournit des liens pour gérer d’autres types de fichiers setup.exe. Voir aussi la section commentaires.

UPDATE: quelques sections ont maintenant été ajoutées directement ci-dessous, avant la description de l'extraction du fichier MSI à l'aide de l'installation administrative. Plus important encore, un texte de synthèse sur l'extraction des bundles WiX setup.exe (nouvel enfant sur le bloc). N'oubliez pas qu'un dernier recours pour rechercher les fichiers d'installation extraits consiste à lancer le programme d'installation, puis à rechercher les fichiers extraits dans le dossier temporaire (Maintenez enfoncé Windows Key, robinet R, tapez %temp% ou %tmp% et appuyez sur Enter) - essayez d’abord les autres options - pour des raisons de fiabilité.

Toutes mes excuses pour le "désordre généralisé" avec tout ce lourd interconnexion. Je crois que vous trouverez ce qu'il vous faut si vous creusez suffisamment dans les liens, mais le contenu devrait vraiment être nettoyé et mieux organisé.

Liens généraux:

Extraire le contenu:

Liens du vendeur:


WiX Toolkit & Burn Bundles (fichiers setup.exe)

Note technique: La boîte à outils WiX fournit maintenant les fichiers setup.exe construits avec l'outil d'amorçage Burn qu'il est nécessaire d'extraire du décompilateur dark.exe de la boîte à outils. Burn est utilisé pour créer des fichiers setup.exe pouvant installer plusieurs fichiers MSI intégrés ou exécutables dans un ordre spécifié. Voici un exemple de commande d'extraction:

dark.exe -x outputfolder MySetup.exe

Avant de pouvoir exécuter une telle extraction, certaines étapes préalables sont requises:

  1. Téléchargez et installez la boîte à outils WiX (vers une réponse précédente contenant des informations contextuelles supplémentaires sur WiX - ainsi que le lien de téléchargement).
  2. Après avoir installé WiX, ouvrez simplement un command Prompt, CD dans le dossier où réside le setup.exe. Puis spécifiez la commande ci-dessus et appuyez sur Enter
  3. Le dossier de sortie contiendra quelques sous-dossiers contenant à la fois des fichiers MSI et EXE extraits, ainsi que des manifestes et un fichier de ressources pour l'interface graphique de gravure (le cas échéant, existait dans le fichier setup.exe).
  4. Vous pouvez maintenant, à son tour, extraire le contenu des fichiers MSI extraits (ou des fichiers EXE). Pour un MSI, cela signifie l’exécution d’une installation d’administrateur - comme décrit ci-dessous.

Il existe un support MSI intégré pour l'extraction de fichier (admin install)

MSI ou Windows Installer a un support intégré pour cela - l'extraction de fichiers à partir d'un fichier MSI. Ceci s'appelle un installation administrative . Il s'agit essentiellement d'un moyen de créer n point d'installation résea à partir duquel l'installation peut être exécutée sur de nombreux ordinateurs cibles. Cela garantit que les fichiers source sont toujours disponibles pour toute opération de réparation.

Notez qu'exécuter une installation administrative par rapport à un outil Zip pour extraire les fichiers est très différent! Ce dernier ne modifiera pas la disposition des supports de la table des supports de sorte que le paquet soit configuré pour utiliser des fichiers source externes - qui est la bonne façon. Préférez toujours l’exécution de l’administrateur par rapport aux extractions de hacky Zip. En ce qui concerne la compression, il existe en fait [trois algorithmes de compression différents] utilisés pour les fichiers CAB contenus dans le format de fichier MSI: MSZip, LZX et Stockage (non compressé). Tous ces éléments sont gérés correctement en effectuant une installation administrateur.

Important: Windows Installer met en cache les fichiers MSI installés sur le système pour réparer, modifier et désinstaller des scénarios. À partir de Windows 7 (MSI version 5), les fichiers MSI sont maintenant mis en cache dans son intégralité pour éviter de rompre la signature du fichier qui empêche l'invite UAC lors du lancement de l'installation (problème connu de Vista). Cela peut entraîner une augmentation considérable de la consommation d'espace disque (plusieurs gigaoctets sur certains systèmes). Pour empêcher la mise en cache d'un fichier MSI volumineux, vous devez exécuter une installation admin du paquet avant l'installation. C’est ainsi qu’une entreprise disposant d’un déploiement adéquat sur un réseau géré ferait les choses. Elle supprimera les fichiers de la cabine et créera un point d’installation réseau avec un petit fichier MSI et des fichiers à côté.


Les install-admin ont de nombreux usages

Il est recommandé d'en savoir plus sur admin-installs car c'est un concept utile et j'ai écrit un article sur stackoverflow: Quel est le but de l'installation administrative initiée avec msiexec/a? .

L'installation de l'administrateur est essentielle pour:

  • Extraire et inspecter les fichiers du programme d’installation
    • Pour avoir une idée de ce qui est réellement installé et où
    • Pour vous assurer que les fichiers ont l'air fiables et sécurisés (aucun virus - les logiciels malveillants et les virus peuvent néanmoins se cacher dans le fichier MSI)
  • Déploiement via un logiciel de gestion de systèmes (par exemple SCCM )
  • Reconditionnement d'applications d'entreprise
  • Opérations de réparation, de modification et d'auto-réparation
  • Patching et mises à niveau
  • Publication MSI (entre autres, cela implique la fonctionnalité "exécuter à partir de la source" où vous pouvez exécuter directement à partir d'un partage réseau et que vous installez uniquement des raccourcis et des données de registre)
  • Un certain nombre d'autres petits détails

Veuillez lire le message stackoverflow lié ci-dessus pour plus de détails. C'est un concept assez important pour administrateurs système, emballeurs d'applications, développeurs d'installation, gestionnaires de version, et - même l'utilisateur moyen pour voir ce qu'ils installent, etc.


Admin-installer, pratique

Vous pouvez effectuer une installation admin de différentes manières en fonction de la livraison du programme d'installation. Essentiellement, il est soit livré sous la forme d'un fichier MSI, soit entouré d'un fichier fichier setup.exe.

Exécutez ces commandes à partir d'un invite de commande élevée, puis suivez les instructions de l'interface graphique pour les lignes de commande interactives:

  • fichiers MSI:

    msiexec /a File.msi
    

    c'est pour fonctionner avec une interface graphique, vous pouvez aussi le faire en silence:

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

    setup.exe /a
    

Un fichier setup.exe peut également être un configuration de style hérité (non-MSI) ou redouté fichier d'installation MSI type de fichier - un buggy bien connu Type de projet Installshield avec format MSI hybride non conforme aux normes. Il s’agit essentiellement d’un fichier MSI avec une interface utilisateur personnalisée plus avancée, mais il contient également de nombreux bogues.

Pour fichiers legacy setup.exe, le / a ne fera rien, mais vous pouvez essayer le commutateur / extract_all: [path] comme expliqué dans ce pdf . C'est une bonne référence pour l'installation silencieuse et d'autres choses aussi. Une autre ressource est cette liste de paramètres de ligne de commande Installshield setup.exe .

Fichiers de correctif MSI (* .MSP) peut être appliqué à une image d'administrateur pour extraire correctement ses fichiers. 7Zip pourra également extraire les fichiers, mais ils ne seront pas correctement formatés.

Enfin - le dernier recours - si aucun autre moyen ne fonctionne, vous pouvez récupérer les fichiers d'installation extraits en nettoyant le dossier temporaire de votre système, en lançant le fichier setup.exe de manière interactive, puis en attendant la première boîte de dialogue. se montrer. Dans la plupart des cas, le programme d'installation aura extrait une série de fichiers dans un dossier temporaire. Parfois, les fichiers sont simples, parfois au format CAB, mais Winzip, 7Zip ou même Universal Extractor (n’ayant pas testé ce produit), peuvent les ouvrir.

41
Stein Åsmul

Je suppose que la question portait principalement sur InstallShield, étant donné les balises, mais au cas où quelqu'un viendrait ici avec le même problème pour les packages basés sur WiX (et éventuellement d'autres), appelez simplement le programme d'installation avec/extract, comme suit:

C:\> installer.exe /extract

Cela placera le fichier MSI dans le dossier à côté du programme d'installation.

15
javawizard

Commençant par paramètre:

setup.exe /A

demande de sauvegarder les fichiers inclus (y compris MSI).

Cela peut dépendre du logiciel qui a créé le setup.exe.

7
Curt

Le seul moyen de faire cela est d'exécuter l'exe et de collecter le MSI. Ce que vous devez faire, c'est que si vous transformez le MSI en utilisant MST, ils risquent de se perdre. 

J'utilise cette ligne de commande batch:

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
Cedric Debattista

Programme d'installation, ale nestiskněte klávesuInstall >tlačítko. Pak

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

a najděte soubor MSI à l'aide de z podadresářů (např. jre1.7.0_25).

Si vous voulez, s'il vous plaît cliquez ici Data1.cab z tohoto podadresáře.

3
Roman Boiko

Il n'y a pas besoin d'utiliser aucun outil !! Nous pouvons suivre le chemin simple. 

Je ne sais pas quel outil a construit votre programme d'installation auto-extractible et je vais donc devoir vous donner une réponse générale. 

La plupart des programmes de cette nature extraient le fichier de package (.msi) dans le répertoire TEMP. Ce comportement est le comportement par défaut de InstallShield Developer.

Sans informations supplémentaires, je vous recommande de simplement lancer le programme d'installation et, une fois que la première boîte de dialogue MSI est affichée, vous pouvez examiner votre répertoire TEMP pour rechercher un sous-répertoire ou un fichier MSI nouvellement créé. Avant d'annuler/d'arrêter un programme d'installation, copiez simplement ce fichier MSI à partir du dossier TEMP. Après cela, vous pouvez annuler l'installation. 

0
Ajit Medhekar