Inno Setup Установщик имеет PrivilegesRequired
directive, который может использоваться для управления, если требуется повышение привилегий, когда установщик запускается. Я хочу, чтобы мой установщик работал даже для пользователей, не являющихся администраторами (никаких проблем с установкой моего приложения в папку пользователя, а не с Program Files
). Поэтому я установил PrivilegesRequired
в none
(недокументированное значение). Это приводит к появлению всплывающего окна UAC для пользователей admin, поэтому их можно установить даже на Program Files
. Нет приглашений UAC для пользователей, не являющихся администраторами, поэтому даже они могут установить приложение (в папку пользователя).Сделать настройку привилегий установщика Inno Setup только при необходимости
Это имеет некоторые недостатки, хотя:
- Некоторые люди используют отдельные учетные записи администратора и не администратора на своих машинах, работающих с не учетной записью администратора нормально. В общем, при запуске установки с использованием учетной записи не-администратора, когда они получают приглашение UAC, они вводят учетные данные для учетной записи администратора для продолжения. Но это не будет работать с моим установщиком, потому что нет приглашения UAC.
- (Слишком подозрительные) люди с учетной записью администратора, которые хотят установить в папку пользователя, не могут запускать мой установщик без (не необходимых) прав администратора.
Есть ли способ сделать правку привилегий запроса Inno Setup только тогда, когда это необходимо (когда пользователь выбирает папку установки, доступную только для учетной записи администратора)?
Я предполагаю, что в Inno Setup нет настроек для этого. Но, возможно, есть программное решение (скрипты Inno Setup Pascal) или какой-то плагин/DLL.
Вы можете выполнить установку с помощью 'PrivilegesRequired == none' из Windows Shell, используя' runas' глагол. Но когда и как вы решаете, стоит ли его повышать или нет? – TLama
Я не собираюсь выполнять установщик. Пользователь будет. Поэтому он должен быть прозрачным. Решение должно быть выполнено установщиком на основе (в том числе) установочной папки (при установке в «Program Files», требуется высота, когда установка на рабочий стол [глупый пример] не требуется). В основном, что делает установщик Windows/MSI. –