0
votes

I have windows InstallShield Executable (.exe) without source files. This installer works in an interactive (GUI) manner. After installation, I can see the registry entry and entry in services.msc. Now there is a requirement to change it to silent installation for automation.

I have converted that InstallShield exe to msi using some extract options.

When I tried to install this MSI in silent manner using msiexec.exe, installation went fine but it was not adding those registry entry and services.msc entry,

This is the command I have used with admin user login via cmd prompt,

msiexec.exe /i app.msi /qn

Am I missing some thing here ?

NOTE - The problem here is I don't have the source for the InstallShield build just the executable alone.

I have seen additional properties like ALLUSERS and INSTALLLEVEL. Are there something else I need to add on this ?

I am trying this on Windows Server 2012 R2.

1
Is this an installation that you or your company developed, or a third party one? Do you know whether it's from a Basic MSI or InstallScript MSI, and can you clarify in your question what command line you used to extract it from setup.exe?Michael Urman
@MichaelUrman, This is developed using third party I guess InstallShield. I converted that exe to msi by running 'app.exe /a' and this creates a msi and other supporting files.Prabu
@MichaelUrman The problem is we don't have the source now just the exe alone.Prabu
When you install the MSI with full UI does it install everything as expected? Maybe there is additional functionality in the EXE that you extract, which you are losing in the MSI.Bogdan Mitrache
you need to have an Administrator privileges to run that msi silently. Because to make any chnages in registry or services by some process, that process should have Admin rights.Ajit Medhekar

1 Answers

0
votes

Sometimes an MSI performs custom actions after InstallFinalize in the InstallExecuteSequence. This is an error in design and can cause a silent install to fail since it never reaches these custom actions (installation ends at InstallFinalize). This is unlike an interactive run which will execute the custom actions after InstallFinalize before passing control back to the GUI sequence. It is also possible that custom actions are defined only in the GUI sequence causing them to never be run during a silent install - another error in design which isn't that uncommon.

Can you check with Orca or another tool whether there are custom actions after InstallFinalize in the InstallExecuteSequence? The bad news is that there is no good fix for this error, but you can try to run the installation by only showing a progress bar and see if this causes the custom action to be run:

msiexec.exe /i app.msi /qb-

This runs basic UI with no modal dialog boxes. Effectively a semi-silent setup. If this fails to try to run /qb instead of /qb-. The idea is to see if this executes the missing custom action by running with a minimal GUI so that the GUI sequence is run.

Finally, as Bogdan points out it is possible for the wrapper exe that you extracted the MSI from to contain additional installation logic that fails to run when you run the MSI alone.