Запуск процесса от имени пользователя, начавшего установку, при создании проекта развертывания - PullRequest
0 голосов
/ 26 августа 2011

Я создаю проект развертывания в Visual Studio 2010, и в конце установки необходимо запустить процесс от имени пользователя, начавшего установку.

Поскольку процесс установки требует повышенных привилегий для запуска, процесс запускается как системный пользователь.

Есть ли способ принудительно запустить процесс во время установки от имени пользователя, запустившего установку? Доступна ли эта информация?

Ответы [ 2 ]

0 голосов
/ 27 августа 2011

В проектах установки Visual Studio пользовательские действия выполняются с без олицетворения по умолчанию (msidbCustomActionTypeNoImpersonate). Таким образом, самым быстрым решением было бы удалить флаг без олицетворения, отредактировав MSI с помощью Orca .

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

0 голосов
/ 27 августа 2011

Проекты развертывания Visual Studio основаны на MSI или установщике Windows. Установщик обычно повышает уровень прав только тогда, когда ему необходимо применить изменения к системе, этапы сбора данных и страницы завершения выполняются как текущий пользователь без повышения прав.

Является ли приложение в конце установки действительно запущенным?
Если это так, вам понадобится обертка. Самый простой способ начать что-то несвязанное - это сохранить контекст текущего пользователя. Оболочка сначала запускает установку, которая повышается при запуске; и после завершения установки приложение запускается как текущий пользователь без повышенных прав.

Попытка запустить процесс без повышенных прав с повышенными правами - сложная и подверженная ошибкам задача. Если вы все еще хотите пойти по этому пути, прочитайте сообщение в блоге Как запустить программу как пользователь настольного компьютера из приложения с повышенными правами?

...