В моей компании есть продукт, который в значительной степени взаимодействует со всем, что вы можете себе представить ... реестром, базами данных, устройствами и т. Д. ... он состоит из множества частей, но все приложение запускается одним исполняемым файлом (начало .exe), который отвечает за запуск всего остального - это весь устаревший код, выполняемый под учетной записью USER.
В настоящее время это запускается как элемент STARTUP (или двойным щелчком по значку на рабочем столе) в Windows, что означает, что когда пользователь входит в учетную запись USER, приложение (start.exe) автоматически запускается, под этой учетной записью оно имеет все разрешения, необходимые для запуска, и все было хорошо в течение многих лет ...
Теперь пришло изменение - я написал службу (Serv.exe), которая работает как LocalSystem - эта служба отвечает за обновление различных программных компонентов нашего продукта и работает следующим образом:
- когда продукт обнаруживает обновление, он сигнализирует о службе LocalSystem (Serv.exe), а затем завершает свою работу
- Serv.exe выполнит все обновления
Теперь, после того, как все сделано, продукт (через start.exe) должен быть снова запущен автоматически ... и вот где мне нужен совет ... как лучше всего перезапустить продукт (запустить). ехе)
В данный момент я использую LocalSystem Service (Serv.exe) и олицетворяю учетную запись USER следующим образом:
- CreateEnvironmentBlock для ПОЛЬЗОВАТЕЛЯ
- CreateProcessAsUser (start.exe) как ПОЛЬЗОВАТЕЛЬ с соответствующим EnvBlock
- DestroyEnvironmentBlock
Но действительно ли это на 100% эквивалентно двойному щелчку по значку в контексте учетной записи USER? Мне нужно убедиться, что все идентично, когда он запускается либо при STARTUP пользователя, либо путем олицетворения из Serv.exe (LocalSystem) - есть ли риск? Буду ли я по-прежнему иметь те же права / возможности для всех баз данных? реестр? взаимодействие устройства? и т.д ..
Загружая EnvBlock, я, кажется, получаю все, что мне нужно, но ... разве это не хороший способ сделать это ...?
Вид надежды на какое-то руководство и совет от профессионала там ...
Любая помощь или советы будут высоко ценится.
Спасибо,