Могу ли я спросить, почему подчиненные процессы должны иметь графический интерфейс? У меня похожая настройка, но нужен только графический интерфейс во время начальной настройки.
В любом случае, вот что я сделал, но, к сожалению, он основан на процессе, выполняемом под учетной записью LocalSystem, который, как я понимаю, вы пытаетесь избежать, если вам действительно нужен графический интерфейс.
Чтобы дать вам немного фона, приложение, которое я должен был распространять, было Hudson , и это была более ранняя версия, где вы распространяли ее, запустив приложение Java WebStart, и, таким образом, нужен графический интерфейс (по крайней мере, во время настройки, чтобы помочь в устранении неполадок).
То, что я сделал, настроил подчиненные приложения в качестве служб на ведомых машинах с помощью sc.exe (который является PITA для правильной работы, к счастью, вы делаете это только один раз). Что-то вроде:
sc.exe create SlaveService binPath= c:\path\to\slave.exe type= interact DisplayName= "The Slave Service"
Обратите внимание на пробелы после параметров (binPath = и т. Д.), Они необходимы. Также обратите внимание, что мне было проще удалить «type = взаимодействовать» и вручную изменить его в консоли службы.
Затем на мастере, также используя sc.exe, я запускаю службу удаленно:
sc.exe \\slavemachine start SlaveService
И проверил, что программа работала на подчиненных машинах.
Теперь в моем случае мне действительно не нужен графический интерфейс, кроме как для первоначального устранения неполадок. Как только у меня все заработало правильно, я просто настроил службу для работы в качестве учетной записи службы, но больше не в интерактивном режиме.
Надеюсь, вы найдете это полезным.