1

Hoping someone can help me? I am trying to silently install an MSI using msiexec.exe /i "SomePDFPrinter.msi" /qn and it is not working. When I try to manually install the MSI it stops at the step in the screen shot below and if you hit Test, then you can hit Next to finish the installation. I tried to install it with ACCEPT=1 and ACCEPTEULA=1 and no luck.

MSI Dialog

Stein Åsmul
  • 39,960
  • 25
  • 91
  • 164
Matt White
  • 15
  • 4
  • 1
    In the past I have used Orca to look up the name of the variables that I need to pass to the msi file for silent installs. Perhaps that might help you look up what you need to pass besides ACCEPTEULA – Jawad May 18 '20 at 15:18
  • I will take a look. Ty. – Matt White May 18 '20 at 15:40
  • 1
    How to install an MSI package silently (if `/qn` doesn't work on the command line) is going to depend on the MSI package. Ask the vendor. – Bill_Stewart May 18 '20 at 15:58
  • You could also [edit your question](https://stackoverflow.com/posts/61872732/edit) to provide the actual real name of the program you're trying to install. There's absolutely no reason to have deliberately hidden that from us, it isn't privacy sensitive information. – Compo May 18 '20 at 15:59
  • In Orca under the Control Table there is a PrinterOptionsDlg (Dialog) that has a PushButton and that is where my problem is. I am not sure how I can silently have this push button activate so the installation can continue. Any thoughts? – Matt White May 18 '20 at 16:02
  • It is usually much easier to just fix this in the MSI - if you can tell us what package it is - and if it is available online. – Stein Åsmul May 18 '20 at 18:26
  • The ControlTable is part of the InstallUISequence which only runs with a UILevel showing the dialogs. When doing a silent install you're only running the InstallExecuteSequence. Log the install and when the dialog pops up open up the log before closing it. That will tell you which custom action is creating this dialog. If you can't get any relief from the author of the MSI then condition the action to not run in the MSI using Orca. This would be a last resort though and may break whatever this install is deploying. – Doc May 18 '20 at 21:34

1 Answers1

0

Short: That is a custom dialog. Disable it and set the properties associated with those dialog fields directly in the property table (using a transform) so that data is written by whatever mechanism they normally are written.

Setting the properties is usually enough. Sometimes you need to use a custom action. To find the property names inspect the dialog fields with Orca or a suitable MSI viewer (list of tools there). Then set the properties in the Property table.


Custom Dialog: This is a custom dialog (not from a standard and hence tested dialog set) and might be authored incorrectly - it might even be out of sequence if it is a spawned Win32 dialog (doesn't look like it is). I have seen a lot of weirdness in cases like these since the proper way to do things is often unclear to people.

Modifying Installer: There are two main ways to modify an MSI installation files: Properties and transforms - see here. The way I would solve things in this case would be to apply a transform to remove the whole dialog from displaying and then check that the data gathered makes it into where it is supposed to go. That can be in the registry, on disk or even a file or a database. This varies. Transforms are little database modifiers. Here is an inlined example of how to apply transforms at runtime:

msiexec.exe /I "My.msi" /QN /L*V "C:\My.log" TRANSFORMS="C:\My.mst"

IT Ninja, Software Library: There is a library / database of packages deployment information here: https://www.itninja.com/software-library/software - if you find your setup there you might get a head start or a solution to deploy properly.

Further information: Some useful links:

Community
  • 1
  • 1
Stein Åsmul
  • 39,960
  • 25
  • 91
  • 164