cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
BSchmidtSage
Level 3

Problem launching IDriver from IS2009

I have an InstallScript MSI project that was converted from InstallShield 11.5 to InstallShield 2009. Within the InstallScript code, I attempt to launch the uninstall of any previous version of the program by launching(via LAAW) its uninstall string found in the registry.

During a specific scenario IDriver.exe fails: I'm logged in as a non-admin on a domain. I kick the upgrade off by running it through a service running under the LocalSystem account. When it gets to the point where it tries launch IDriver.exe to uninstall the old IS11.5 version installed, I get the "InstallShield Wizard is preparing...." dialog which seems to completely fill up the progress bar but then disappears and nothing happens. Note that this only happens when the version currently installed was built in IS11.5 and the upgrade was built in IS2009. This also is not an issue when I log into the machine as an admin, but I don't see why this matters since the install is running through a service as the LocalSystem account.

Running ProcessMonitor shows a few cases where access was denied to the old .ilg file.

Does anyone have any thoughts?
Labels (1)
0 Kudos
(6) Replies
MichaelU
Level 12 Flexeran
Level 12 Flexeran

I believe the pre-IS12 IDriver model would try to use the Interactive User when possible, instead of the Launching User. That might be related to the differences you describe between being launched as a service vs. launched as a logged-in administrator. Setup.exe offered the /runas parameter to change to using the Launching User.
0 Kudos
BSchmidtSage
Level 3

Thanks Michael. Follow-up question though.... Would I add the /runas switch to the launch of the IS2009 setup.exe which, as mentioned before, uses LAAW to launch IDriver for the IS11.5 version?

The problem I see is that the suggested use of "/runas" would be used in a situation where you were launching the setup.exe bootstrap program that called its own IDriver.exe. In my case, the InstallScript code in my setup.exe is simply querying an uninstall string for a previous version and launching that through LAAW directly. Is there a way to modify(in IS2009) that LAAW call similarly to your suggestion?
0 Kudos
MichaelU
Level 12 Flexeran
Level 12 Flexeran

Unfortunately I think the place you would need it is in the IDriver.exe command line, and trying to research our older code, I don't see where IDriver.exe would accept that command line. One potential workaround is to tweak the InstallDriver AppID registry keys (there's two of them) such that they both reference the launching user. Open up ISScript*.msi to find the keys in the Registry Table. Or maybe you can run this uninstall from an interactive session and avoid this trouble.
0 Kudos
BSchmidtSage
Level 3

I see the option for Interactive User. Is the value for the launching user simply "Launching User"?
0 Kudos
MichaelU
Level 12 Flexeran
Level 12 Flexeran

Launching user is represented by a blank or removed value.
0 Kudos
BSchmidtSage
Level 3

I've also tried using "Launching User" and that seems to do the trick, although it may simply be the fact that anything other than "Interactive User" is there.
0 Kudos