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.
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 .
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.
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 le1)
system's temp folder for extracted files
. Une autre astuce consiste à utiliser2)
7-Zip, WinRAR, WinZip
ou des outils d’archivage similaires pour voir s’ils peuvent lire le format. Certains prétendent avoir réussi par3)
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:
- Créer un fichier MSI à partir de fichiers d'installation extraits (vers le bas)
- Concernant l'installation silencieuse à l'aide de Setup.exe générée à l'aide du fichier de projet Installshield 2013 (.issuite) (différents types de fichiers Installshield setup.exe)
- Quel est le but de l'installation administrative lancée à l'aide de msiexec/a? .
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:
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:
command Prompt
, CD
dans le dossier où réside le setup.exe
. Puis spécifiez la commande ci-dessus et appuyez sur EnterMSI 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é.
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:
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.
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.
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.
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
.
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
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.
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.