Программно повысить пользовательские привилегии - PullRequest
2 голосов
/ 30 октября 2008

Я уже некоторое время поддерживаю установку, но я не эксперт. теперь меня попросили найти решение для этого:

Наше программное обеспечение всегда продается вместе с компьютером, так как оно должно работать в очень контролируемой среде. Программа установки требует административных привилегий для выполнения. До сих пор у нас было два разных пользователя, один с правами администратора, а другой без. Наш клиентский сервис регистрируется как Администратор, устанавливает программное обеспечение и перезагружает компьютер, чтобы пользователь мог получить доступ как обычный пользователь.

Теперь мы хотим, чтобы пользователь мог устанавливать программное обеспечение самостоятельно, но мы не хотим, чтобы у него был доступ с правами администратора, потому что они могут изменять то, что не следует изменять.

Итак, есть ли способ программно повысить пользовательские привилегии во время установки, а затем снизить их обратно? Установщик сделан с использованием InstallShield, но мы используем vbscript для проверки некоторых предварительных требований.

Ответы [ 2 ]

4 голосов
/ 30 октября 2008

Выезд CPAU . Позволяет создать зашифрованную команду, которая будет запускать установку от имени администратора.

РЕДАКТИРОВАТЬ : Этот представляет собой более полный список похожих инструментов.

1 голос
/ 30 октября 2008

Если вы ищете инструментарий для таких вещей, ну, в Microsoft Microsofts есть такая встроенная функция: для установки исходного файла MSI необходим доступ администратора, дополнительные исправления (я думаю, MSP) подписываются цифровой подписью. исходный MSI и, следовательно, считается безопасным - пользователи могут устанавливать их, не требуя повышения прав администратора.

Вы можете сделать то же самое: в рамках административной установки установите службу. Служба может создать именованный канал - который вы явно предоставляете ACL-спискам пользователей - или даже просто сокет или отслеживание удаленной папки, которая позволяет коду пользовательского уровня взаимодействовать с кодом службы (работает с SYSTEM или настроенным доступом). Затем служба может использовать свои СЕРВИС или настроенные разрешения на уровне учетной записи, чтобы выдавать себя за администратора или выполнять другие задачи от имени пользователя, НИКОГДА не предоставляя пользователю каких-либо повышенных разрешений - даже временно.

...