Я пытаюсь запустить приложение при входе любого пользователя (или при подключении к сеансу, будь то локальное или удаленное) с повышенными привилегиями, но без запроса UAC. При добавлении нового пользователя приложение должно запускаться и при его входе в систему без дополнительной настройки.
Я установил машину Hyper-V с Windows 10 Enterprise v.1709 для тестирования. На нем у меня есть основная (обозначенная как «Администратор») учетная запись, которая находится в группе администраторов, и одна (обозначенная как «Пользователь») учетная запись, которая находится только в группе пользователей.
Я создал простое приложение WPF, которое показывает текущего пользователя и наличие у него прав администратора. Конечным приложением также будет WPF.
Я буду использовать WiX для создания установщика для своего набора приложений (вышеупомянутое приложение, служба Windows, возможно, что-то еще). Поведение из заголовка должно задаваться автоматически во время установки. При установке я могу делать все, что захочу, будучи ограниченным только возможностями WiX, но он позволяет мне запускать пользовательское приложение (C #) во время установки, поэтому я думаю, что ограничений нет. Установка будет запущена из учетной записи с правами администратора.
Вот что я пробовал и каков был результат:
«Запускать эту программу от имени администратора» не отмечено.
Админ: запускается, без прав администратора
Пользователь: запускается, без прав администратора
«Запустить эту программу от имени администратора» отмечен для всех пользователей.
Админ: Не запускается
Пользователь: не запускается
«Запускать эту программу от имени администратора» не отмечено.
Админ: запускается, без прав администратора
Пользователь: запускается, без прав администратора
«Запустить эту программу от имени администратора» отмечен для всех пользователей.
Админ: Не запускается
Пользователь: не запускается
Других вариантов нет
Админ: Не запускается
Пользователь: не запускается
Установлен флажок "Запускать с наивысшими привилегиями"
Администратор: запуск, права администратора
Пользователь: не запускается
«Запустить эту программу от имени администратора» отмечен для всех пользователей.
Админ: Не запускается
Пользователь: не запускается
«Запускать эту программу от имени администратора» установлен для всех пользователей, «Запускать с наивысшими привилегиями» установлен
Администратор: запуск, права администратора
Пользователь: не запускается
Как это сделать? Средство просмотра событий, похоже, не регистрирует какую-либо конкретную информацию, когда приложение вообще не запускается. Должен ли он быть там или такие журналы могут быть размещены где-то еще? Где тогда?
Цель: Windows 8+, Server 2012+
Если у вас должен быть графический интерфейс, то правильный способ справиться с этим - иметь приложение с графическим интерфейсом и отдельную системную службу. Сервис выполняет фактическую работу, а графический интерфейс просто передает ему команды. Выдача себя за другое лицо может использоваться, чтобы позволить службе действовать как пользователь.
Если единственная причина, по которой вам нужен доступ администратора, - это запись в ключ HKLM, то доступ администратора - неправильный способ сделать это. В установщике создайте раздел реестра и измените ACL для этого раздела, чтобы у пользователей был доступ на запись. Для запуска приложения таким образом не требуются права администратора.