2008-10-30 8 views
2

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

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

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

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

ответ

4

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

EDIT: This - это более полный список подобных инструментов.

1

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

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