Rat*_*rma 3 .net powershell sftp winscp powershell-2.0
我需要使用PowerShell脚本将文件从SFTP服务器下载到本地计算机.
将用于下载的API /库需要能够监视传输结果,记录传输,以及存档/移动下载的文件.
提前致谢.
PowerShell或.NET框架中没有SFTP支持.所以你必须使用外部SFTP库.
一种可能性(您在自己的问题中标记了自己)是WinSCP .NET程序集.有一篇关于使用PowerShell的WinSCP的文章.
在PowerShell中甚至还有SFTP下载的代码示例:
try
{
# Load WinSCP .NET assembly
Add-Type -Path "WinSCPnet.dll"
# Setup session options
$sessionOptions = New-Object WinSCP.SessionOptions -Property @{
Protocol = [WinSCP.Protocol]::Sftp
HostName = "example.com"
UserName = "user"
Password = "mypassword"
SshHostKeyFingerprint = "ssh-rsa 2048 xxxxxxxxxxx...="
}
$session = New-Object WinSCP.Session
try
{
# Connect
$session.Open($sessionOptions)
# Download files
$transferOptions = New-Object WinSCP.TransferOptions
$transferOptions.TransferMode = [WinSCP.TransferMode]::Binary
$transferResult =
$session.GetFiles("/home/user/*", "d:\download\*", $False, $transferOptions)
# Throw on any error
$transferResult.Check()
# Print results
foreach ($transfer in $transferResult.Transfers)
{
Write-Host "Download of $($transfer.FileName) succeeded"
}
}
finally
{
# Disconnect, clean up
$session.Dispose()
}
exit 0
}
catch [Exception]
{
Write-Host "Error: $($_.Exception.Message)"
exit 1
}
Run Code Online (Sandbox Code Playgroud)
WinSCP GUI甚至可以为您的特定会话设置和传输选项生成PowerShell SFTP下载代码(如上所示):
(我是WinSCP的作者)
归档时间: |
|
查看次数: |
12768 次 |
最近记录: |