Максимум, что вы можете сделать со стандартным загрузчиком Visual Studio, - это проверить значение свойства AdminUser . В предопределенном предварительном условии профиля клиента .NET Framework 4.0 используется аналогичное условие. Вы можете найти его манифест в этой папке:
C:\Program Files\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages\DotNetFX40Client
Это также должно поддерживаться генератором манифеста загрузчика.
Но, и это очень важно, в новых версиях Windows все пользователи могут получить права администратора через повышение прав. Таким образом, с точки зрения установщика, любой пользователь считается администратором, даже если это не так.
Так что этот подход в значительной степени бесполезен в Vista или выше.
Вы можете попробовать создать свой собственный загрузчик EXE, который обрабатывает предварительные условия и проверяет привилегии пользователя. Но вы, скорее всего, столкнетесь с той же проблемой.
По моему опыту, лучший подход - позволить каждому установщику поднять себя, если это необходимо. Большинство из них имеют встроенные механизмы для этого, особенно от Microsoft.
Если вы столкнулись с проблемами при таком подходе, я почти уверен, что они не вызваны привилегиями. Скорее всего, ваше предварительное условие настроено неправильно (например, неверная командная строка).