I’m looking for the best way to transfer files from my computer to another person’s computer.

We both use Windows and I can use some external programs like TeamViewer for file transfers but I found the speed lacking. So I tried to find some other means of transferring the data. On Linux this is so simple since you have scp and ftp and all that. But on Windows, there’s no such support; at least not natively.

So I tried TeamViewer (but slow speeds), then there’s WinSCP but we would need to set up a server of some sort (ssh daemon?).

PSCP doesn't work either, it just gives me the error:

local to local transfer not supported.

FTP needs an FTP server too.

What other options are there? What’s a preferred method of transferring files?

I guess I could use BitTorrent technology but I would need tracker addresses. Of course, these aren’t that hard to find but is there really an equivalent for the Linux way of transferring files using command line options or something that allows client to client transfer of data easily and fast?

  • Cygwin has ftp, ssh, scp, ... – DavidPostill Sep 2 '15 at 7:04
  • 1
    @DavidPostill That's true. This still needs additional software to be downloaded though.. There isn't really anything in Windows natively that allows filetransfers from client to client? – enrm Sep 2 '15 at 9:08
  • If they are on different networks then not really (at least not in any secure way). There is fileai.com "fileai.com is a free web site that enables people to securely share files with one another that cannot be easily sent via e-mail. You don't need to download or install any software, and your files are not uploaded to any server. The files are encrypted and sent directly, peer-to-peer, through your existing web browser. " – DavidPostill Sep 2 '15 at 9:17
  • @DavidPostill looked into that.. Seems like a good alternative. I wonder what the transfer rate is.. Will have to investigate – enrm Sep 2 '15 at 11:45
  • (1) Burn to external/movable/removable media (such as an external drive or optical discs) and sneakernet.  (2) If both machines have access to the Internet, and you're not paranoid about Big Brother reading your files, email them to the operator of the destination computer (or use other online storage). – Scott Sep 4 '15 at 22:33

The only native file transfer solution in Windows is the FTP server built into the IIS (web server). It's not running by default. Note that you can use the IIS to setup an FTP server even without setting up a website.

When setting up the FTP server in the IIS, make sure you force TLS/SSL encryption (FTPS) and disallow anonymous authentication, for security.

See (my) guide on Installing Secure FTP Server on Windows using IIS.

Once you have the FTP(S) server set up, you can use any FTP client. Windows Explorer itself does support FTP(S). Though note that the Windows built-in command-line ftp.exe client is useless as it does not support the TLS/SSL or a passive mode (so it can hardly connect though firewalls and NATs).

There's no native SSH/SFTP/SCP server in Windows, though there are lot of 3rd-party implementations.

Microsoft recently released OpenSSH for Windows. Since Windows 10 version 1803, it can be installed as an optional feature of Windows.

I have prepared a guide for setting up SSH/SFTP server on Windows using this Microsoft build of OpenSSH.

  • Good point. Will look into this – enrm Sep 2 '15 at 9:08
  • Hey, offtopic but you might be able to help me anyway; I want to allow user(s) to access the ftp server which is just a directory atm by using my domain name such as transfer.example.com. How do I port forward this? At the moment i already have a port forward rule for 22 to a rPi on my network, but I suppose I need to define a Virtual Server from within my router so that anything from transfer.example.com:1337 gets redirected to my internal ip address and port 21 (for example) .. In IIS you can edit what DNS name should be used so I put in my transfer.example.com there.. with port 21. – enrm Sep 2 '15 at 11:19
  • Please start a new question for this. This is Q&A site, not a discussion forum. – Martin Prikryl Sep 2 '15 at 11:26

You can use Powershell remoting (since Powershell 5)
There are plenty of examples at https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/copy-item
which you can also get by running Help Copy-Item -Examples in Powershell.

This is a simple example of copying a local file to a remote computer.

Example 5: Copy a file to a remote computer

$Session = New-PSSession -ComputerName "Server01" -Credential "Contoso\PattiFul"
Copy-Item "C:\MyRemoteData\test.log" -Destination "D:\MyLocalData\" -FromSession $Session

To day it's possible to use a native scp at Windows 10, you can install it by configuration menu, or by PowerShell, for the last option, here is the code:

Add-WindowsCapability -Online -Name OpenSSH.Server~~~~
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~

Start-Service sshd
Set-Service -Name sshd -StartupType 'Automatic'
Set-Service -Name ssh-agent -StartupType 'Automatic'
Start-Service ssh-agent

For incoming conections we need the OpenSSH Server, and for outgoing, the client.

Remember, if you have an antivirus software with firewall, create outgoing and incoming rules for ssh at port 22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.