At the company where I work, we're setting up continuous integration and as part of this we want the daily build cycle to build installers and run them on a staging server.
I've written the installers using WiX 3.6 and they run correctly on the staging server when I try logging on using remote desktop and running them using msiexec. If I use psexec to remotely execute exactly the same msiexec command line from the build server, the process completes without an error code, there are no errors in the log file, and the files are all installed correctly, but the program is not listed in "Add/Remove Programs".
Comparing the log files the only difference seems to be that when installed from a remove server it uses a "32bit Elevated custom action server", while installing locally uses a "32bit Impersonated custom action server".
Comparing the registry entries, installing locally creates a lot more keys in lots of places, but installing remotely does create some keys, specifically:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\{ID}\Products\{ID}
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{GUID}
HKU\.DEFAULT\Software\Microsoft\Installer\Products\{ID}
HKU\{ID}\Software\Microsoft\Installer\Products\{ID}