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.
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"
Http://www.compdigitec.com/labs/files/isxunpack.exe
Utilisation: isxunpack.exe yourinstallshield.exe
Il va extraire dans le même dossier.
Commencez par:
setup.exe /?
Et vous devriez voir une fenêtre contextuelle avec quelques options affichées.
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
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.