Я не очень разбираюсь во всем WPF / UAC, так как я в основном пишу сценарии с PowerShell & AutoIt ... но сейчас я работаю над разработкой приложения для корпоративной среды с> 100 000 устройств, которое выполняет некоторые Права администратора работают в фоновом режиме и отображают графический интерфейс для пользователя (что позволяет ему выполнять некоторые действия).
Как это должно работать:
- Установщик приложения запускается с правами системы через дистрибутив программного обеспечения, он устанавливает приложение WPF, создает для него запись в планировщике задач (для ежедневного запуска) и ярлык в меню «Пуск».
- Затем приложение запускается планировщиком и выполняет некоторые фоновые проверки на наличие нескольких предварительных условий.
- Если предварительные условия выполнены, запускается уведомление о тосте в Win10, показывающее пользователю некоторую информацию и указывающее ему открыть графический интерфейс.
Теперь сложная часть:
- Если пользователь нажимает на уведомление, чтобы открыть приложение, или пользователь запускает его из ярлыка в меню «Пуск», приложение должно красиво работать и отображать графический интерфейс для взаимодействия с ним (отложить проверку в установленные сроки / выполнить действие сейчас) .
Что я пробовал:
- Приложение всегда должно работать с правами администратора. Это не работает, например, если приложение запускается обычным пользователем из меню «Пуск». Очевидно, что пользователи не имеют прав администратора, учитывая корпоративную среду, поэтому они не смогут предоставлять учетные данные в приглашении UAC (если вы установили для параметра selectedExecutionLevel значение admin). Даже если они это сделают, это не нормально с точки зрения пользовательского опыта ...
- Встраивайте фоновую работу администратора в службу Windows и вызывайте эту службу из основного приложения (GUI). Это также не работает, потому что доступ к службе запрещен для простого корпоративного пользователя ... Я попытался установить для общедоступного модификатора доступа к службе в установщике, но это тоже не помогает.
У меня есть весь готовый код (~ 7,500 строк), но я не могу его использовать, и я начинаю сходить с ума!
Пожалуйста, помогите парню из ИТ-специалистов оказаться в психушке :)