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

PowerShell脚本获取SFTP服务器指定目录文件列表失败问题咨询

常见问题排查点

  • 首先确认你使用的SFTP PowerShell模块的正确调用规则:绝大多数场景下你用的Get-SftpChildItem属于Posh-SSH模块,该命令不支持直接传入-Host/-Password/-Username这类参数,必须先建立SFTP会话后再调用命令,错误的参数传递会导致命令静默返回空结果。
    正确的调用示例如下:
# 先安装模块(仅首次运行需要)
Install-Module -Name Posh-SSH -Scope CurrentUser

# 构建凭据
$cred = Get-Credential -UserName myusername -Message "输入SFTP密码"

# 建立SFTP会话
$session = New-SFTPSession -ComputerName mysftpserver -Port 22 -Credential $cred

# 获取目录下文件
$files = Get-SFTPChildItem -SFTPSession $session -Path "/MySFTPFolder/outbound/" -File

# 遍历文件
ForEach ($f in $files)
{
    "test" | Out-File $ConfigFile -Append
}

# 用完关闭会话
Remove-SFTPSession -SFTPSession $session
  • 检查SFTP路径的大小写匹配:绝大多数SFTP服务端基于Linux,路径大小写敏感,需确认/MySFTPFolder/outbound/的拼写、大小写和服务端实际路径完全一致。
  • 确认账号权限:你使用的SFTP账号需要对目标outbound目录具备可读权限,没有读权限时命令也会返回空列表。
  • 检查参数补充:如果目标文件是隐藏属性,可添加-Force参数强制读取;如果需要同时读取子目录内容,可添加-Recurse参数。
  • 特殊字符转义:如果密码包含$、&、空格等PowerShell特殊字符,必须用单引号包裹密码字符串,避免被PowerShell解析为特殊变量或指令。
  • 增加调试步骤:可以在获取$files后添加一行$files | Out-Host直接输出结果,确认是获取文件阶段失败还是后续遍历逻辑的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 13:39:03