To expand on the psexec suggestion, it's a part of the Sysinternals suite of tools that are now owned by Microsoft. It basically will let you execute a command on a remote Windows system - including copying a "program" to the remote system to be run remotely.
Since you're also interested in capturing the output of the command being run on the remote system, you may want to consider pairing psexec with Capture::Tiny.
If you have a log in for the remote system that has the required permissions to do what you want, I believe that psexec might be the easiest route to go.