I already have ready C# agent, controlled remotely via WCF. This agent is currently used for MMORPG bot farm control and can find windows, start processes, read process memory, identify current user name, emulate input and so on (see portfolio for more info). So, I can deliver Java app, that remotely controls arbitrary count of workstations with a custom logics. The only issue is that agent can emulate input only in active Windows session (inactive sessions via "Switch user" can not be emulated, it's Windows architecture trouble). Issue may be worked around using RDP connections to different users, as I currently do :) .