Программно повышайте права пользователей

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

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

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

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


person Javier De Pedro    schedule 30.10.2008    source источник


Ответы (2)


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

ИЗМЕНИТЬ: Это более полный список подобных инструментов.

person itsadok    schedule 30.10.2008

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

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

person Chris Becke    schedule 30.10.2008