Безопасность установщика Windows / вопрос об учетных данных - PullRequest
1 голос
/ 02 декабря 2010

Люди,

У меня странная проблема с визуальной студией 2010, построенной MSI ...

Когда я запускаю msi, он выполняет несколько задач, затем запускает инструмент, который мы создали - этот инструмент затем выполняет более сложную работу, которую мы не могли выполнить в пользовательской задаче.

Проблема здесь заключается в том, что когда msi запускает мой пользовательский инструмент, он не запускает его с теми же учетными данными, с которыми я запускаю MSI (т.е. мой административный логин).

Есть ли параметр, который я могу передать в MSI для этого? Или, может быть, я могу передать учетные данные процессу, когда я его запускаю?

Мой процесс запущен с использованием Process process = Process.Start(procInfo) ничего особенного. Я также отметил возможность передачи параметризованного имени пользователя / пароля / домена, но это будет зависеть от пользователя, который устанавливает - может ли это быть каким-то образом извлечено из установщика?

Любая помощь (или вопросы) приветствуется.

Dave

РЕДАКТИРОВАТЬ: для ясности ... Я запускаю MSI под своей учетной записью домена, и я хочу, чтобы мой пользовательский процесс выполнялся в этом «контексте». В настоящее время он запускается (независимо от того, начинаю ли я от имени администратора или нет) под учетной записью SYSTEM (а не с mydomain \ me). Я использую Windows Server DataCenter, если это поможет ...

Я должен также добавить, я думаю, что это проблема политики, но я понятия не имею, что проверять / где проверять ...

1 Ответ

1 голос
/ 02 декабря 2010

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

Обратите внимание, что если вы используете MSI от имени администратора, это не означает, что ваши пользовательские действия будут иметь полные права администратора. На Vista или выше любой пользователь может получить права администратора через повышение прав.

Так что если вашим настраиваемым действиям требуются права администратора, убедитесь, что они используют флаг msidbCustomActionTypeNoImpersonate , чтобы они выполнялись под учетной записью локальной системы.

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

...