Установщик Inno Setup имеет директиву PrivilegesRequired
которую можно использовать для управления, если требуется повышение привилегий, при запуске установщика. Я хочу, чтобы мой установщик работал даже для пользователей без прав администратора (нет проблем с установкой моего приложения в папку пользователя вместо Program Files
). Поэтому я установил для PrivilegesRequired
значение none
(недокументированное значение). Это делает всплывающее окно UAC всплывающим только для пользователей с правами администратора, чтобы они могли установить даже Program Files
. Нет запроса UAC для пользователей без прав администратора, поэтому даже они могут установить приложение (в папку пользователя).
Это имеет некоторые недостатки:
- Некоторые люди используют разные учетные записи администратора и не-администратора на своих машинах, обычно работая с учетной записью без прав администратора. Как правило, при запуске установки с использованием учетной записи без прав администратора, когда они получают приглашение UAC, они вводят учетные данные для продолжения учетной записи администратора. Но это не будет работать с моим установщиком, потому что нет запроса UAC.
- (Чрезмерно подозрительно) люди с учетной записью администратора, которые хотят установить в папку пользователя, не могут запустить мой установщик без (ненужных) прав администратора.
Есть ли способ повысить привилегии запроса Inno Setup только тогда, когда это необходимо (когда пользователь выбирает папку установки, доступную для записи только для учетной записи администратора)?
Я предполагаю, что нет никаких настроек для этого в Inno Setup. Но, возможно, есть программное решение (сценарии Inno Setup Pascal) или какой-то плагин /DLL.
Обратите внимание, что Inno Setup 6 имеет встроенную поддержку неадминистративного режима установки.