Project

Transferetto

Small PowerShell module with FTPS/SFTP functionality

Stars64
Forks15
Open issues10
PowerShell Gallery downloads12892266
Releasev1.0.0
Language: PowerShell Updated: 2026-02-14T21:19:42.0000000+00:00

Documentation

Transfer folders with PowerShell

Use Transferetto to send or receive whole directory trees from PowerShell.

Folder transfer is usually where ad-hoc scripts get messy. Transferetto gives you explicit directory cmdlets so you do not have to loop over every item manually unless you want that level of control.

Directory transfer lanes

  • Send-SFTPDirectory and Receive-SFTPDirectory for secure recursive transfer
  • Send-FTPDirectory and Receive-FTPDirectory for classic FTP and FTPS endpoints
  • Send-SCPDirectory and Receive-SCPDirectory when the server exposes SCP

When to prefer each one

  • Prefer SFTP for secure recursive transfer with richer remote filesystem support.
  • Use FTP or FTPS when the target system only exposes the FTP family.
  • Use SCP when you need straightforward copy semantics and the server already supports SSH.

Upload a folder with FTPS

Import-Module Transferetto

$ftpClient = Connect-FTP -Server 'ftp.example.com' -Credential (Get-Credential) -EncryptionMode Explicit
Send-FTPDirectory -Client $ftpClient -LocalPath "$PSScriptRoot\Upload" -RemotePath '/releases' -FolderSyncMode Update
Disconnect-FTP -Client $ftpClient

Receive a folder with SFTP

Import-Module Transferetto

$sftpClient = Connect-SFTP -Server 'sftp.example.com' -Credential (Get-Credential)
Receive-SFTPDirectory -SftpClient $sftpClient -RemotePath '/exports/nightly' -LocalPath "$PSScriptRoot\Download\Nightly" -AllowOverride
Disconnect-SFTP -SftpClient $sftpClient

Practical guidance

  • Use deterministic local and remote root paths.
  • Decide whether existing files should be updated or preserved.
  • Review the returned transfer results when the folder contents matter.