In this case, you would not use Cmd.exe but rather WScript.Shell to perform file and network operations on a remote machine; and you can even launch programs from it (see The behavior of Win32::OLE->new from a couple of weeks ago). Being an OLE object, it's fully scriptable in Perl using Win32::OLE.