Windows Service Silent Update: Difference between revisions

Jump to navigation Jump to search
Line 75: Line 75:


== Applying an update from the service's perspective ==  
== Applying an update from the service's perspective ==  
*The service gets started
*The service gets started
*The service watches the work item directory for work items.
*The service watches the work item directory for work items.
Line 83: Line 82:
*The service will execute the update with updater.exe under the context of its own session (session 0) using CreateProcess.  
*The service will execute the update with updater.exe under the context of its own session (session 0) using CreateProcess.  
*The path of updater.exe will be a copy of the updater.exe which exists inside the service directory.  (A copy in case the original gets overwritten during the update).
*The path of updater.exe will be a copy of the updater.exe which exists inside the service directory.  (A copy in case the original gets overwritten during the update).
*The post update process (helper.exe) currently does i) system level stuff, and ii) user level stuff.  This component will be executed twice.  The system level stuff will also be executed under session 0 using CreateProcess. The user level stuff will be executed under the parsed session ID.
*The post update process (helper.exe) currently does i) system level stuff, and ii) user level stuff.  This component will be executed twice.  The system level stuff will also be executed under session 0 using CreateProcess. The user level stuff will be executed by the unelevated updater.exe with its own session ID.
*Once the update process is complete, if the command line parameters passed in the `work item` mentioned to restart Firefox, Firefox will be restarted.  It will be restarted within the context of the passed Session ID but NOT using the elevated user token. It will use the restricted user token previously obtained.
*The service sets a global named event to let the unelevated udpater.exe know it is done working.


== When the service fails  ==
== When the service fails  ==
Confirmed users
394

edits

Navigation menu