Running an installer on Vista without turning UAC off

installationuacwindows-installerwindows-vista

My msi installer cannot be installed on a Vista machine without turning UAC off. As my application is going to be distributed to my clients, around 20 machines, and they do not want to turn UAC off, is there a way that I can set some property which would allow my installer to run silent without any user interaction when UAC, which is enabled, pop up shows up

Best Answer

The best resources I've found to get my head around UAC is is Robert Flamings blog, he's got a series of about 25 posts that explain how Vista, UAC and MSI all interact.

Vista will always prompt once it gets to the InstallExecuteSequence if you're doing a per-machine install (ALLUSERS=1), however if you've got an installer that requires elevation outside this sequence, then the best solution is to use a bootstrapper EXE with a manifest indicating that elevation is required when the EXE is run.

We use a commercial bootstrapper from Indigo Rose (it's a standalone app but it's only sold as part of MSI Factory), but you could get creative with NSIS, use the Visual Studio one and there's also a sample in the Windows Installer SDK