title: Running msiexec from a service (Local System account)
body: <p>We are working on an update system for our software. The updater should run in the background as a service, and when an update is available, download and install it. We need the service to install the update since the <a href="http://en.wikipedia.org/wiki/Windows_Installer" rel="noreferrer">MSI</a> requires elevation to run, but some of our clients will be restricted users.</p>
  
  <p>The MSI is a <a href="http://en.wikipedia.org/wiki/WiX" rel="noreferrer">WiX</a> MSI and does a major upgrade when run. The problem is, the update does not seem to work when run from our service. I can see msiexec run, and it returns successfully, but it seems to make no changes to the system. The same command, when run from my user account works as expected.</p>
  
  <p>Is there some caveat to running msiexec from a Local System service?</p>
  
  <p>We are simply doing:</p>
  
  <pre><code>string arguments = "/i /quiet /lv*x " + pathToLogFile;   
  System.Diagnostics.Process.Start("msiexec.exe", arguments);
  </code></pre>