Extraire par programme le contenu de InstallShield setup.EXE

J'essaie d'extraire le contenu du fichier D'une configuration InstallShield.EXE. (Mon plan est de l'utiliser dans un outil de back-office, donc cela doit être fait par programme sans aucune interaction de l'utilisateur.)

Est-ce possible?
(La recherche initiale semble indiquer qu'elle échouera.)

S'il est possible d'avoir une solution générique, pour toutes les versions récentes D'InstallShield ce serait mieux.
Sinon, si une solution ne fonctionne que pour certaines versions de InstallShield ce serait une étape sur le chemin. (Il serait probablement possible de déduire quelle version InstallShield a setup.exe est en regardant les ressources de version du fichier exe.

J'ai trouvé que certaines versions D'InstallShield prennent en charge /b ou /extract_all. Cependant, il n'y a pas de bon moyen de savoir, il suffit de lancer l'exe et d'espérer qu'il va extraire et terminer ordonnée plutôt que d'afficher les boîtes de dialogue GUI ne semble pas être une bonne solution. Je cherche donc un moyen plus stable.
Idées de bienvenue.

21
demandé sur leiflundgren 2011-12-30 19:50:35

5 réponses

Il n'y a pas de moyen pris en charge pour le faire, mais ne devrez-vous pas examiner les fichiers liés à chaque programme d'installation pour comprendre comment les installer après les avoir extraits? En supposant que vous pouvez passer le temps de déterminer quelle ligne de commande s'applique, voici quelques paramètres candidats qui vous permettent normalement d'extraire une installation.

Basé sur MSI (peut ne pas donner une image utilisable pour une installation MSI InstallScript):

  • setup.exe /a /s /v"/qn TARGETDIR=\"choose-a-location\""

    Ou, pour extraire également prérequis (pour les versions où cela fonctionne),

  • setup.exe /a"choose-another-location" /s /v"/qn TARGETDIR=\"choose-a-location\""

InstallScript basé sur:

  • setup.exe /s /extract_all

Suite (peut ne pas être évident comment installer les fichiers résultants):

  • setup.exe /silent /stage_only ISRootStagePath="choose-a-location"
32
répondu Michael Urman 2012-01-01 16:41:41

Http://www.compdigitec.com/labs/files/isxunpack.exe

Utilisation: isxunpack.exe yourinstallshield.exe

Il va extraire dans le même dossier.

8
répondu Motes 2011-12-30 17:17:06

Commencez par:

setup.exe /?

Et vous devriez voir une fenêtre contextuelle avec quelques options affichées.

4
répondu Garen 2013-05-24 21:17:20

Sur Linux, il y a unshield, qui a bien fonctionné pour moi (même si l'interface graphique inclut des moyens de dissuasion personnalisés comme des invites de clé de licence). Il est inclus dans les dépôts de toutes les principales distributions (arch, suse, debian et fedora) et sa source est disponible à https://github.com/twogood/unshield

3
répondu stefanct 2016-10-21 15:09:42

Le programme libre et open-source appelé cabextract liste et extrait le contenu de non seulement .cab-files, mais les archives de Macrovision aussi:

% cabextract /tmp/QLWREL.EXE
Extracting cabinet: /tmp/QLWREL.EXE
  extracting ikernel.dll
  extracting IsProBENT.tlb
  ....
  extracting IScript.dll
  extracting iKernel.rgs

All done, no errors.
1
répondu Mikhail T. 2013-11-24 07:39:06