Install WinSCP PowerShell modul:

Install-Module -Name WinSCP -Scope AllUsers
Import-Module WinSCP

Store password as encrypted string in a file

$passwordFile = "C:\scripts\encryptedPassword.dat"
$securedPassword = Read-Host "Enter password" -AsSecureString
$securedPassword | ConvertFrom-SecureString | Out-File $passwordFile

Test SFTP connection

$server = "sftp.example.com"
$port = 22
$username = "dataexport"
$passwordFile = "C:\scripts\encryptedPassword.dat"
 
$securedPassword = Get-Content $passwordFile | ConvertTo-SecureString
$credential = New-Object System.Management.Automation.PSCredential(
    $username, $securedPassword)
$sessionOptions = New-WinSCPSessionOption -HostName $server -PortNumber $port `
    -Credential $credential -SshHostKeyPolicy GiveUpSecurityAndAcceptAny
New-WinSCPSession -SessionOption $sessionOptions

Sources:

Related:

Tags: