How can I copy a file from one Windows server to another in a script?

I have two Windows 2003 servers, and I want to write a backup script on one that will copy a file to the other. What's the most idiomatic way to do this on Windows? Essentially, I'm looking for the Windows equivalent of

$ scp file.tar.gz user@host:/wherever

In response to questions: At the moment I'm only thinking about one file, a database backup. Potentially I might end up with multiple files, but I'm not that interested in rsync-like systems that track which files have changed and back up accordingly.

I'd like a solution that works with the servers on different networks, with firewalls in between. Opening up a single port on the firewall to a reasonably secure service ought not to be a problem.


Personally, I'd do it by mapping a drive from one server to the other and then copying the file to the mapped drive. Something like:

net use F: <\\path\to\share> /user:Username password
xcopy <file> F:
net use F: /delete

You could use robocopy instead, if you've got some more serious mirroring to do. I usually finish up by using blat or something similar to send me an email with a directory listing of the backup target, just to be sure everything made it over.


copy/xcopy/robocopy and if you have the admin permissions, use the administrator shares like

\\server\c$

freeSSHd + PSCP/PSFTP