It really depends on what type of "commands" you want to run, how beefy you want your app(s) to be, and what sort of resources (time, cost, labor, skill-level, etc.) you have available. You have a lot of options, from the banal and easily-implemented, to the over-architected, SOA masterpiece. As mentioned above, you can use something straightforward like SSH, PowerShell, etc., but it sounds like you want something more powerful (modern?) (BTW, xml-rpc isn't all unicorns and rainbows; I have the scars to prove it!)
Sending remote commands between machines is an old, solved problem, so there's a lot of existing tech you can take advantage of: RPC -> XML-RPC -> WS-*/SOAP -> SOAP-RPC -> .Net Remoting -> WCF -> REST... and those are just a select few you have access to.
If your requirements are pretty simple, I would shy away from a full-blown SOA/ESB-type architecture, and perhaps use a technology like WCF (which can still be used if you dream big, and want to expand the app into an SOA masterpiece later on). There's a bit of a learning curve with WCF (and WCF certainly isn't all unicorns and rainbows either), but there are a lot of resources our there to learn from.
Using WCF, you can also implement the actual calls via REST, encode the data in JSON, build the whole thing in an ASP.Net MVC application, and then you will be fully buzzword-compliant. More importantly though, you'll have an application that is flexible and expandable in the future.
It would help to know more about the exact types of commands you want to run, and the functionality you are looking for.