windowsnetwork-programmingdistributedcluster-computingremote-process

Starting remote processes in a Windows network


I have several slave machines and a master machine which together run a distributed application. Processes on each slave machine have to have a GUI and network access (I think it would be called an interactive process then). For ease of use it would be nice if the master machine could start/stop the processes on those slave machines.

My first idea was to use WMI and the Win32_Process class to start a remote process but upon further investigation it was reveiled that processes started this way are non-interactive and isolated, and thus cannot have any GUI. A note says that one can use Win32_ScheduledJob.Create to create a remote interactive process, but it runs under the LocalSystem account which I would like to avoid (also I couldn't even get it to run properly).

What would be good ways to solve this problem? Maybe it is possible to launch a helper application which in turn starts a proper process, but that seems quite dirty.

Edit: PsExec was really clunky when I tried it and slow as hell (not sure why). Looking further at PsExec it seems it installs a temporary service on the remote machine to launch the application. Would this be the only way to spawn an interactive process using a proper identity? Should I include a helper service in the setup for the nodes? But even then, how would I communicate with it then?


Solution

  • PsExec is part of the sysinternals suite that can do that

    http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx

    If your servers are running windows 2008 you can also use

    Terminal Services Remote App