InstallExecuteSequence
During the InstallExecuteSequence, changes are made to the computer such as laying down files. This part of the installation is called the "server side" and the UI portion is called the "client side", which is a way of conceptualizing that the two are run in different sessions and with different privileges. The client side runs as the user who launched the MSI while the server side is run as the LocalSystem user.
If you install with logging turned on you can see the split between client and server. Actions that occur during the first half start with "MSI (c)", as in the following example:
MSI (c) (64:80) [13:41:32:203]: Switching to server:
That's the last entry from the client before switching to the server. Then you'll see log entries begin with "MSI (s)".
MSI (s) (D0:4C) [13:41:32:218]: Grabbed execution mutex.
By taking ownership of the execution mutex
, the server side is saying that no other MSI package can be run while the execution phase is in progress. The following...