WinService запускает тихий установщик с повышенными привилегиями

У нас есть WinService, установленный под учетной записью администратора.

Из WinService мы запускаем установщик InstallShield в автоматическом режиме.

Под какими привилегиями запускается установщик? Будет ли он выполняться с правами администратора (унаследованными от WinService) или будет работать с правами учетной записи зарегистрированного пользователя?

1 ответ

Решение

Если это MSI-проект InstallScript, созданный со старой версией InstallShield (что-то до InstallShield 12, например DevStudio 9 или InstallShield 11.5), обычно части механизма InstallScript предоставлялись в качестве службы и выполнялись как пользователь входа в систему. Эти части, как правило, были частями, которым требовалось повышение прав в Windows Vista (и технически это требовалось в XP, хотя пользователь Logon был, скорее, администратором), поэтому это было исправлено еще в InstallShield 12 (который включает InstallShield 2008 и выше).

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

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

Другие вопросы по тегам