I am facing issue in executing an msi package on Windows Vista using ShellExecuteEx from a Service.
As per what I understand, Executing anything that requires elevation using CreateProcess/CreateProcessAsUser will result in Error 740. The solution to this is use ShellExecute(Ex). ShellExecute makes sure that the elevation prompt occurs (if needed).
Now, Here is what I want to do.
I want to execute an msi which requires elevation. The command I am trying to execute through ShellExecuteEx is "c:\windows\sytem32\msiexec.exe /i c:\temp\Flash.msi -q". (I am specifying "runas" in lpverb member of SHELLEXECUTEINFO). This is executed by my service named "MyService". I know that on Vista a service cannot display UI. But this msi is capable of running in quiet mode. I verified this by executing the above command from cmd prompt. It worked fine.
Please let me know What is the problem in executing msi from the service.