Имею такой сетап:
Есть Сервис, который запускает Программу, которая, в свою очередь, по команде запускает Вторую программу.
Случай 1:
Сервис запускается при старте системы, в этот же момент запускает и Программу.
Однако если потом Программа попытается запустить Вторую программу, то получаем ошибку инициализации приложения 0xС0000142.
Event Log при это пуст.
Случай 2:
Если же запуск Программы происходит позже, тоже Сервисом (в тот момент, когда уже кто-то давно залогинен), то Вызов второй программы происходит без проблем.
Вызов делается через ShellExecute, однако с CreateProcess тот же результат.
В обоих случаях Программа запущена под NT AUTHORITY/NETWORK SERVICE.
ProcessExplorer в обоих случаях показывает равные права.
Первая программа — 32битное десктопное приложение.
Вторая программа — 64битное консольное приложение, однако выяснилось, что в первом случае запустить вообще никакую программу невозможно.
ProcessMonitor не показывает ошибок доступа к DLL в первом случае.