- Run the installer with additional parameters to record the install and create a response file. Example: "setup.exe /r /f1c:\temp\setup.iss"
- Copy the setup.exe and setup.iss files to the computer where the software needs to be installed.
- On the target computer, run "setup.exe /s /f1
In theory, this should silently run the installer, using the same responses provided when creating the response file in step 1. In my case, this worked perfectly. As long as I was manually running the command in step3 from an administrative command prompt. When I tried deploying this as an application from system center, using the same command line and the same response file, the installation failed with a return code of "-3".
Since the command works fine when I run it manually, I decided it had to be a problem of the different context in which configmgr was running the installer. Configmgr was running the package as system, not as a user.
When the InstallShield package executes, the first thing it does is extract files into a temporary location. If I run it manually, those files are placed in c:\users\
\appdata\local\temp\ - but it can't use the same path when running in the system context. I was able to work around this by adding a "/b " parameter, in which is the directory where I want the setup files extracted to. The final command line used for the application in SCCM looked like this:
"setup.exe" /s /f1
setup.iss /bc:\swsetup\ /v/qn
Using that syntax, the application installed successfully from ConfigMgr. Hopefully this information will be useful to others who might run into the same error.