PDA

View Full Version : Running custom action executable



WindChaser
09-09-2014, 09:18 AM
Hi.

For a variety of reasons, my installation package needs the "Required execution level" parameter to be set at Administrator execution level. However, I also need to run some custom action executables which are compiled at Invoker level. My problem is that when the package is executed, it runs these custom action executables at Administrator level even though they do not require it. This changes the behavior of the executables (e.g. on Windows 8, due to the File system redirector and the default disabling of the EnableLinkedConnections parameter in the system registry).

Is there a way to indicate that a custom action executable should be run at different execution level?

Thanks!

MichaelU
09-09-2014, 09:48 AM
The only way that InstallShield supports for this is by being launched at the invoker level and elevating later. Chances are the problems you encounter when you don't do this are either due to bad implementations of custom actions, or possibly due to limitations inherent to what they need to access (IIS being a prime example of that). So if at all possible, I would suggest ensuring that all actions that need privileges are scheduled as Deferred in System Context. If that is not possible, the only other approach I've seen is described in a blog post by Raymond Chen titled "How can I launch an unelevated process from my elevated process and vice versa?". Note that there are limitations to this second approach, so I still prefer making the first approach viable over attempting the second approach.