Назад | Перейти на главную страницу

Запускать приложение при входе / входе любого пользователя с повышенными привилегиями

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

Я установил машину Hyper-V с Windows 10 Enterprise v.1709 для тестирования. На нем у меня есть основная (обозначенная как «Администратор») учетная запись, которая находится в группе администраторов, и одна (обозначенная как «Пользователь») учетная запись, которая находится только в группе пользователей.

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

Я буду использовать WiX для создания установщика для своего набора приложений (вышеупомянутое приложение, служба Windows, возможно, что-то еще). Поведение из заголовка должно задаваться автоматически во время установки. При установке я могу делать все, что захочу, будучи ограниченным только возможностями WiX, но он позволяет мне запускать пользовательское приложение (C #) во время установки, поэтому я думаю, что ограничений нет. Установка будет запущена из учетной записи с правами администратора.

Вот что я пробовал и каков был результат:

Приложение в C: \ ProgramData \ Microsoft \ Windows \ Start Menu \ Programs \ StartUp

Запись в HKLM \ Software \ Microsoft \ Windows \ CurrentVersion \ Run

Планировщик заданий, триггер «При входе любого пользователя»

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

Цель: Windows 8+, Server 2012+

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


Если единственная причина, по которой вам нужен доступ администратора, - это запись в ключ HKLM, то доступ администратора - неправильный способ сделать это. В установщике создайте раздел реестра и измените ACL для этого раздела, чтобы у пользователей был доступ на запись. Для запуска приложения таким образом не требуются права администратора.