I'd agree with Seth Flowers - psexec is a good way to go about it.
--
Since you tagged your question as C# I'll add:
If you are asking because you're creating a distributed system where a host machine is spawning off jobs on child machines then you could create a C# host app and a C# client app and link them together using Windows Communication Foundation (WCF.) This would give you a service class to communicate with the other machines from the host. Once you can communicate between the machines, you could simply have the host tell the child "run this app" and you can use your process code on the child side.
This is a good article explaining the concept, I've used it before (side note, run VS as administrator if you use this or the metadataBehavior object will throw an exception):
http://www.codeproject.com/Articles/16765/WCF-Windows-Communication-Foundation-Example