You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PowerShell原生命令从SFTP下载单个文件(SSMS作业场景)

解决SFTP文件下载的原生Windows方案及错误分析

错误原因

Invoke-WebRequest仅支持HTTP/HTTPS/FTP协议,不兼容SFTP,所以你使用SFTP格式的路径会触发"The URI prefix is not recognized"错误。

原生Windows实现SFTP下载的方法

Windows 10 1809及以上、Windows Server 2019及以上版本默认自带OpenSSH客户端,属于系统原生工具,无需额外安装第三方软件。可以通过sftp命令行完成文件传输,适合集成到SSMS作业中。

脚本示例(两种路径写法)

1. 不拆分远程目录与文件名

直接指定完整远程路径,适合单文件固定传输场景:

# 配置参数
$sftpUser = "myusername"
$sftpPass = "mypassword"
$sftpServer = "ftp.companyname.com"
$remoteFile = "/remotetestfolder/TestBlankFile.xlsx"
$localFile = "C:\Users\....\...\Desktop\TestBlankFile2.xlsx"

# 生成sftp命令脚本(避免交互输入密码)
$scriptContent = @"
get $remoteFile $localFile
quit
"@
$scriptPath = "C:\temp\sftp_download_script.txt"
Set-Content -Path $scriptPath -Value $scriptContent -Encoding ASCII

# 调用sftp命令执行下载
echo $sftpPass | sftp -b $scriptPath $sftpUser@$sftpServer

# 清理临时脚本文件
Remove-Item -Path $scriptPath -Force

2. 拆分远程目录与文件名(更灵活)

拆分后可单独调整目录或文件名,方便后续扩展批量处理逻辑:

# 配置参数
$sftpUser = "myusername"
$sftpPass = "mypassword"
$sftpServer = "ftp.companyname.com"
$remoteDir = "/remotetestfolder"
$remoteFileName = "TestBlankFile.xlsx"
$localFile = "C:\Users\....\...\Desktop\TestBlankFile2.xlsx"

# 生成sftp命令脚本
$scriptContent = @"
cd $remoteDir
get $remoteFileName $localFile
quit
"@
$scriptPath = "C:\temp\sftp_download_script.txt"
Set-Content -Path $scriptPath -Value $scriptContent -Encoding ASCII

# 执行下载
echo $sftpPass | sftp -b $scriptPath $sftpUser@$sftpServer

# 清理临时文件
Remove-Item -Path $scriptPath -Force

SSMS作业配置步骤

  1. 打开SSMS,创建新作业,添加执行PowerShell类型的步骤。
  2. 将上述PowerShell脚本复制到步骤的命令框中,替换为实际的账户、路径参数。
  3. 确保作业执行账户拥有以下权限:
    • SFTP服务器目标文件的读取权限
    • 本地目标目录的写入权限
    • 系统sftp命令的执行权限
  4. 运行作业测试,检查文件是否成功下载到本地路径。

注意事项

  • 若你的Windows版本未自带OpenSSH客户端,可通过「设置-应用-可选功能-添加功能」搜索安装「OpenSSH客户端」。
  • 明文传递密码存在安全风险,生产环境建议使用SSH密钥认证:将本地公钥上传至SFTP服务器的用户authorized_keys文件中,脚本即可去掉密码相关代码,直接运行sftp -b $scriptPath $sftpUser@$sftpServer。
  • 临时脚本文件建议放在有权限的临时目录,避免权限访问问题。

内容的提问来源于stack exchange,提问作者PowerUser

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 11:32:56