Was only just discussing this with someone yesterday. I've built a tool to do it, but a remote connection over "distance" will have latency, be very slow to enumerate processes and return all relevant information like CPU and Memory usage of each process, which comes from Perf Mon data. For testing, I'm in Perth (Australia) and was enumerating processes from machines in Azure (Sydney). Opposite side of the Country with about 70ms latency. It was taking 12 or so minutes, which is not really acceptable. But if I had my tool hosted in the same Azure region, it would be relatively quick.
A process that connects and runs on the machine and returns data is a better solution. I guess psexec will do that, as James mentioned, or a remote PowerShell session, which can also be tricky, as that in itself has some limitations. But that is also why 3rd party tools like ControlUp work well for this, because you are getting that data from a locally installed Agent, which does all the "heavy lifting".