Вы не заявили, но, похоже, ваш файл setup.exe имеет манифест, требующий прав администратора (если вы получаете приглашение UAC при запуске setup.exe, это так). Также вероятно, что исполняемый файл, который вы пытаетесь запустить из своего настраиваемого действия, имеет аналогичные требования к административным привилегиям. Пользовательское действие exe в MSI использует CreateProcess, который не может быть повышен.
Если ваше действие выполняется в последовательности пользовательского интерфейса, вам нужно каким-то образом использовать ShellExecute или ShellExecuteEx - это можно сделать с помощью настраиваемого действия InstallScript с помощью LaunchApplication с флагом LAAW_OPTION_USE_SHELLEXECUTE или с C ++, который напрямую вызывает ShellExecuteEx.
Если ваше действие выполняется в последовательности «Выполнить», вы должны пометить его «Отложено в системном контексте», чтобы оно началось с повышенного контекста для начала. Это, как правило, предпочтительнее (по крайней мере, с точки зрения взаимодействия с пользователем), поскольку оно позволяет избежать дополнительного запроса UAC, который будет показан другим методом. Однако любое отложенное действие имеет ограничения (например, минимальный доступ к свойству), с которыми вам может потребоваться ознакомиться.