Comment extraire des fichiers d'un package MSI?


192

Nous avons d'anciens correctifs dont nous voulons récupérer les fichiers mais ne souhaitons pas passer le temps à les installer sur une machine.

Quelqu'un peut-il conseiller un moyen d'extraire des fichiers d'un package d'installation MSI?


Pouvez-vous fournir plus d'informations sur le package d'installation MSI exact que vous souhaitez extraire, les détails de votre système d'exploitation, etc.
Firee

Réponses:


212

Tout d'abord, accédez à une invite de commande avec privilèges, pour ce faire:

  1. Cliquez sur le bouton Démarrer.

  2. Cliquez sur Tous les programmes.

  3. Allez dans les accessoires.

  4. Cliquez avec le bouton droit sur Invite de commandes.

  5. Sélectionnez Exécuter en tant qu'administrateur.

  6. Lorsque l'invite UAC apparaît, cliquez sur Continuer.

Une fois que vous avez votre invite de commande élevée, entrez les informations suivantes:

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

en utilisant les emplacements souhaités pour remplir les chemins de fichiers mentionnés ci-dessus. Exemple:

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

5
Un autre rapide Google a révélé ceci: legroom.net/software/uniextract Je préférerais utiliser les fonctions intégrées, mais cela ressemble à un utilitaire acceptable.

5
Autant que je sache (de msiexec /?), Cette commande installera effectivement le programme à cet emplacement; Je ne pense pas que ce soit ce que le demandeur initial avait en tête.

8
@ user6738 J'ai testé cela et il n'installe pas le logiciel. Le logiciel ne se trouve ni dans l'application, ni ne peut être désinstallé via le MSI et signale qu'il n'est pas installé. Il extrait vraiment les fichiers de mon test.
Adam Caviness

17
Je l'ai exécuté sur un ordinateur Win8.1 verrouillé (ordinateur portable de travail) et il convient de noter que les droits d'administrateur ne sont PAS nécessaires pour extraire des .msifichiers.
MattDMo

5
Très bonne réponse! Je l'ai mis dans un extractMSI.cmdfichier: msiexec /a %1 /qb TARGETDIR="%~d1%~p1%~n1" || pauseet je l'ai ajouté aux options "Ouvrir avec ..." du fichier msi
Tobias Kienzler

75

Utilisez 7Zip .
Il décompressera les fichiers MSI, CAB, certains fichiers EXE et bien d’autres. Il n’ya pas besoin de privilèges d’administrateur pour l’exécuter.

-MODIFIER-

Et son source ouverte, donc pas de messages lancinants vous priant d'acheter le truc


13
et après l'avoir essayé, msiexec fait un meilleur travail (conservation des répertoires, nommage correct des fichiers, etc.)
Michael Schubert

Cela ne semblait pas fonctionner pour moi sur Win7 x64 avec 7-Zip 32 bits. Y at-il un moyen particulier (pas glisser-déposer) vous devez lui dire d'ouvrir le fichier?
ebyrob

Il devrait y avoir une option de 7zip dans le menu contextuel lorsque vous cliquez avec le bouton droit de la souris sur le fichier - cela vous donnera la possibilité d'extraire les fichiers
Shekhar

7
Je vois beaucoup de choses avec un signe d'exclamation devant les fichiers réels. J'imagine que quelque chose a changé ou que j'ai un fichier msi étrange. J'ai essayé 7-Zip 9.20.
Mlt

@MichaelSchubert - ça dépend. Si vous utilisez une machine autre que Windows, 7Zip est une bonne option car la version en ligne de commande est également disponible pour les autres systèmes. Cela dépend du cas d'utilisation, je dirais.
Per Lundberg

46

Il y a aussi lessmsi qui est complètement gratuit et open source.

Il n'y a pas de publicités ni de messages hargneux, il préserve correctement la structure des répertoires et les noms de fichiers, dispose d'une interface de ligne de commande sophistiquée , ainsi que d'une interface utilisateur graphique permettant de parcourir les fichiers ainsi que d'afficher des tables MSI internes et d'autres attributs MSI.


7
Merci! Celui-ci m'a aidé à extraire d'un fichier MSI qui ne le serait pas à l'aide de la commande msiexec disant "l'installation de l'administrateur n'est pas prise en charge" pour <nom du package d'installation>
axk le

1
celui-ci a aidé .. msiexec n'a pas extrait pour une raison quelconque ..
Abdul Hameed

23

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 une installation administrative . Il s'agit essentiellement d'un moyen de créer un point d'installation réseau à 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 d'administrateur 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 package soit configuré pour utiliser des fichiers source externes - ce qui est le bon moyen. Préférez toujours l’exécution de l’administrateur par rapport aux extractions de hacky zip. En ce qui concerne la compression, trois algorithmes de compression différents sont utilisés pour les fichiers cab 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.


Les install-admin ont de nombreux usages

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

L’installation de l’administrateur est essentielle pour:

  • Extraire et inspecter les fichiers du programme d'installation
  • Déploiement via un logiciel de gestion de systèmes, par exemple SCCM (évite les énormes fichiers MSI en cache dans C: \ Windows \ Installer, car les fichiers sont extraits des cabines internes)
  • Reconditionnement d'applications d'entreprise
  • Opérations de réparation, de modification et d'auto-réparation
  • Patching et mises à niveau
  • Annonce MSI ( fonctionnalité " exécuter à partir de la source ")
  • 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 les administrateurs système , les concepteurs d' applications , les concepteurs d'installation , les gestionnaires de publication 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 du mode de livraison du programme d'installation. Essentiellement, il est fourni sous forme de fichier MSI ou encapsulé dans un fichier setup.exe .

Exécutez ces commandes à partir d'une invite de commande avec privilèges élevés et suivez les instructions dans 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 une installation de style hérité (non-MSI) ou le type de fichier MSI réputé Installcript - un type de projet Installshield buggy bien connu avec un 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 est également rempli de bugs.

Pour les 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 .

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

Enfin, 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 que la première boîte de dialogue s'affiche. Dans la plupart des cas, l’installateur aura extrait un tas de fichiers dans un dossier temporaire. Parfois, les fichiers sont simples, parfois au format CAB, mais Winzip, 7Zip ou même Universal Extractor (n’ont pas testé ce produit) - peuvent peut-être les ouvrir.


Voir aussi cette réponse: superuser.com/questions/307678/…
Stein Åsmul

Même message sur stackoverflow: stackoverflow.com/a/24987512/129130 (je devrais en supprimer un, mais les deux ont droit de vote et ont été fusionnés récemment).
Stein Åsmul

8

Je recommanderais UniExtract pour rendre la solution de Neoice encore plus simple. Il fait la même chose, il est simplement plus automatisé et permet plusieurs méthodes d’extraction de fichiers MSI, pas seulement une installation administrative (comme sa solution l’utilise).

UniExtract peut également gérer les fichiers exe fournis avec WISE ou InstallShield, ainsi que divers autres formats compressés. Oh, et c'est gratuit.

Universal Extractor est un programme qui fait exactement ce qu’il dit: extrayez des fichiers de n’importe quel type d’archive, qu’il s’agisse d’un simple fichier zip, d’un programme d’installation ou même d’un package Windows Installer (.msi).



1

vous pouvez utiliser Orca, cette application fait partie de Platform SDK, mais vous pouvez également la télécharger à partir d'ici http://astebner.sts.winisp.net/Tools/Orca.zip


3
Orca est préférable pour extraire des méta-données telles que des tables de fichiers, de dossiers et de registre. Ce n'est généralement pas très utile pour extraire les fichiers réels (complètement inutile si les fichiers ne sont pas stockés dans la table binaire).
Synetech

1

lessmsiest vraiment le meilleur choix ici, car il vous propose de choisir exactement quels fichiers à extraire et où ils doivent aller. En outre, il peut être facilement installé à l'aide du apt-getframework pour fenêtres, appelé Choclatey. Le lessmsisite Web ci-dessus a été déplacé et peut également être trouvé / téléchargé sur GitHub . En outre, vous pouvez trouver de nombreux autres outils et informations relatives à MSI ICI. : (Désolé, je ne peux pas poster plus de 2 liens!)


1

Ajoutez PeaZip à la liste. A travaillé comme un champion


Veuillez lire Comment recommander un logiciel pour obtenir des conseils sur la façon de procéder. Au minimum, vous devez fournir plus qu'un simple lien, par exemple des informations supplémentaires sur le logiciel lui-même, par exemple, comment il peut être utilisé pour résoudre le problème de la question.
DavidPostill




0

Les configurations Installshield .exe (comme vous les appelez) se déclinent en de nombreuses variantes et il est généralement possible d’en extraire des fichiers.

Installshield setup.exe peut contenir d’anciens programmes d’installation, anciens ou non, ou de nouveaux programmes d’installation.

Si le fichier setup.exe encapsule une installation MSI, vous pouvez spécifier setup.exe / a et l'installation de l'administrateur de MSI s'exécutera, vous permettant ainsi de spécifier l'emplacement de sortie des fichiers.

Si setup.exe est une installation Installshield classique, il peut ne pas prendre en charge l'extraction de fichiers via le commutateur / extract_all: [path] . Voir ici (mis à jour en juillet 2011, le lien Acresso n'était plus valide, mis à jour à nouveau en février 2014 - pointant maintenant vers itninja).

Notez également qu’un autre moyen de récupérer ces fichiers consiste à vider le dossier temporaire de votre système, à lancer le fichier setup.exe de manière interactive, puis à attendre que la première boîte de dialogue s’affiche. Dans la plupart des cas, l’installateur aura extrait un tas de fichiers dans un dossier temporaire. Parfois, les fichiers sont simples, parfois au format CAB, mais Winzip, 7Zip ou même Universal Extractor (n’ont pas testé ce produit) - peuvent peut-être les ouvrir.


Mes exigences pour le faire sont passées maintenant - mais je vais essayer ce que vous suggérez à un moment donné pour voir si cela aurait fonctionné. Merci d'avoir répondu.
Martin
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.