Есть ли способ принудительно обновить программное обеспечение с помощью RunOnce без входа администратора, если в фоновом режиме работает служба от имени администратора?
РЕДАКТИРОВАТЬ: Главное, что я хочу делать, это запускать, когда запускается RunOnce, т.е. перед запуском Explorer. Мне нужно иметь возможность устанавливать вещи, не загружаясь в учетную запись администратора.





Я не уверен, что понимаю вопрос. Дай мне попробовать:
Упомянутая вами услуга - это ваша? Если это так, вы можете добавить в него код для имитации Windows: из вашей службы проверьте значение RunOnce и запустите указанный в нем исполняемый файл. Вы можете использовать API CreateProcessAsUser () для его запуска в контексте произвольного пользователя. После запуска процесса удалите запись RunOnce.
Или я неправильно понял ваш вопрос?
Обновлено: Служба не зависит от того, какой пользователь вошел в систему. Вы можете начать процесс обновления из службы, как только сама служба запустится, это произойдет до того, как какой-либо реальный пользователь войдет в систему на компьютере.
Но он не будет работать при запуске runonce (до запуска dll и т. д.).
Сервис может запустить процесс в любое время, это не зависит от того, какой пользователь вошел в систему. В любом случае, мы обсуждаем решение, не имея четкого понимания проблемы (по крайней мере, я). Чего именно вы пытаетесь достичь?
Есть ли способ остановить запуск оболочки до тех пор, пока служба не выполнит свои действия?
помечен как "безопасность", так как вы можете взломать его