Since a custom action can be scheduled in both the User Interface(UI) and execute sequence tables, and can be executed either in the service or client process, a custom action can potentially execute multiple times. The Execution Scheduling option allows you to set how often a particular custom action is executed. For example, if an action is listed in both the UI and Execute sequences, it can be set to execute both times or only once.

The items for the Execution Scheduling option are listed below:

Option | Description
--- | ---
Always execute | Select this option to have the action execute every time it is encountered. Therefore, it could execute in the UI sequence and again in the Execute sequence.
Execute only if running on client after UI sequence | Select this option to have the action execute only if it is running on the client.
Execute only once | When you select this option, your custom action executes only once, if it exists in both the UI and Execute sequences. The action is skipped in the Execute sequence if the UI sequence has run.
Execute only once per process | On NT-based machines, the UI and the Execute sequence run in separate processes. Select this option to force your custom action to launch at least once in the UI sequence and once in the Execute sequence.

Note the following about Windows Installer:

- Executes actions in a sequence table immediately by default.
- Does not execute an action if the conditional expression field of the sequence table evaluates to False.
- Processes the UI Sequence table in the client process if the internal user's interface level is set to the full UI mode.
- Is a service registered by default when using Windows NT or Windows 2000 or later and, in this case, the execute sequence table is processed in the installer service.
- Processes the execution sequence table in the client process by default when using Windows 95 or 98.