0

I'm currently working automated creation of SCCM packages and I wonder to have some help with msi extraction from exe sources. Usually opening exe installer with 7zip solves the problem and can be automated.

But some installers, like JRE installer, have something like MSI tables inside (!InstallExecuteSequense, !Property, ect.)

Extracted MSI can be found somewhere in appdata, but for automatisation purposes, starting the installer and searching in appdata is quite bad idea. As these "files" inside exe installer are in fact msi tables, I suppose that there is a way to extract or compile msi without executing the installer.
Does anyone know how to do this or heard something similar?

serjou
  • 17
  • 1
  • 9
  • [Extract MSI from EXE](https://stackoverflow.com/questions/1547809/extract-msi-from-exe/24987512#24987512) (also see other answers in that thread). And you should know about [administrative installation](https://stackoverflow.com/a/5751980/129130) (built-in file extraction mechanism for MSI files). – Stein Åsmul Apr 08 '19 at 14:22
  • No, that's not working – serjou Apr 08 '19 at 15:04
  • If it didn't work after you tried all those options then it must be a legacy style ``setup.exe`` without any embedded MSI files in there. What is the name of the software? JRE installers - as far as I recall - tend to be a wrapper MSI file that kicks off a legacy installer via a custom action. Then you don't really get much out of the file if you run extraction. – Stein Åsmul Apr 08 '19 at 15:16
  • If you start jre installer, you can find msi installer in locallappdata, if I'm not mistaken. But the question is, how is it possible and if is it possible to extract msi from exe installer in case if msi tables are extracted from exe installer? – serjou Apr 08 '19 at 15:23
  • I mean, If jre installer extracts msi from itself to some location, how can I reproduce it and extract msi to the location I want – serjou Apr 08 '19 at 15:38
  • The vast majority of MSI files wrapped in `setup.exe` files can be extracted via **`setup.exe /a`**. This JRE exe could be an [InstallAnywhere](https://www.flexerasoftware.com) wrapper (multi-platform deployment tool - and hence be special - I am not sure). You can probably just grab the MSI from that cache location, then run an [administrative installation](https://stackoverflow.com/a/5751980/129130) on it to get the files inside (if any at all - could be just a wrapper for another `setup.exe`). Check [itninja.com package hints for Oracle](https://www.itninja.com/software/oracle/browse/j). – Stein Åsmul Apr 08 '19 at 23:22
  • "how can I reproduce it and extract msi to the location I want" - you can't specify the extraction location on the command line AFAIK, and I'm not sure why you'd want to. You should manually run the .exe, and just before you click 'Install' grab a copy of the MSI/cab file (later versions don't have an external CAB) and then use those files in your deployment. The files get extracted to LocalLow\Sun or LocalLow\Oracle (depending upon the version of JRE). The last time I checked, the MSI is just a 'wrapper' for Oracle's installer anyway. – Captain_Planet Apr 09 '19 at 08:30
  • yes, but the goal is to get msi directly from exe. even if I know the path to java msi, I don't know the pathes to other msis, whose vendors use same logic – serjou Apr 09 '19 at 14:13

0 Answers0