Я разрабатываю программу для Windows, которая состоит из двух компонентов:
- Драйвер ядра (подписан сертификатом EV)
- Уровень пользователя GUI компонент .exe-файл (записан в Delphi).
.exe необходимо запустить с повышенными правами, чтобы запустить драйвер и выполнить другие задачи с повышенными правами.
Как такая программа может автоматически запускаться при запуске Windows без отображения приглашения UA C?
Я видел, что многие подобные приложения, такие как программы защиты от вредоносных программ, могут запускаться с повышенными правами без UA C prompt.
Я рассматриваю следующие варианты и буду признателен, если вы укажете правильное направление:
1. Задайте для запуска драйвера значение * * * * * * * * * * * * * * * [*] [*] [*] [*]]. Служба ядра
Тем не менее, мое исследование показывает, что не существует документированного способа запуска процесса уровня пользователя из ядра.
2. Создайте отдельную службу уровня пользователя, которая запустит .exe
Я прочитал, что службы уровня пользователя освобождены от UA C.
Возможным подходом будет создание автоматическая c запускаемая служба уровня пользователя, которая просто запускает процесс .exe (используя CreateProcessAsUser () ), а затем завершает свою работу.
3. Преобразуйте программу .exe из приложения Delphi GUI в службу уровня пользователя
Аналогично варианту 2, но вместо создания отдельного .exe для службы мы преобразуем текущее GUI приложение для работы также в качестве службы. Я нашел некоторую документацию по этому поводу в этой ветке StackOverflow . Однако этот подход кажется более сложным, чем создание отдельной выделенной службы.
4. Предоставляет ли сертификат EV какое-либо преимущество для выполнения этой задачи?
5. Есть ли лучший способ, кроме вышеупомянутых?