You need to enable JavaScript to run this app. WinSCP命令行连接WebDAV提示Basic认证被拒如何正确配置脚本
优惠活动
大模型
产品
解决方案
定价
更多

WinSCP命令行连接WebDAV提示Basic认证被拒如何正确配置脚本

问题根因

认证失败主要由两个常见原因导致:

  • 用户名中包含的@特殊字符未做URL转义,WinSCP解析URL时会把@作为用户名和主机地址的分隔符,导致用户名、主机地址被错误拆分
  • 脚本默认使用Basic认证方式,但WebDAV服务器不支持Basic认证,直接拒绝了认证请求,图形界面会自动协商匹配服务端支持的认证方式,所以可以正常连接

修正方案

方案1:修正URL转义+显式指定认证类型

首先对URL中的特殊字符做转义:用户名里的@转义为%40,如果密码包含&、%、#、空格等特殊字符也需要做对应URL编码。
同时在open命令后添加-webdav=Auto参数开启认证方式自动协商,匹配服务端支持的认证规则。
修正后的脚本内容:

open davs://user%40company.com:password@querty.sandbox.company.com/in/my.servlet/webdav/Catalogs/company/ -webdav=Auto
synchronize remote -mirror D:\winscptest\files\ /in/my.servlet/webdav/Catalogs/company/
close
exit

方案2(更推荐):拆分参数写法,避免转义错误

如果不想处理URL转义,可以把用户名、密码、地址分开写,语法更清晰不容易出错:

open davs://querty.sandbox.company.com/in/my.servlet/webdav/Catalogs/company/ -username=user@company.com -password=password -webdav=Auto
synchronize remote -mirror D:\winscptest\files\ /in/my.servlet/webdav/Catalogs/company/
close
exit

运行验证

修改脚本后直接用原命令运行即可:

"C:\Program Files (x86)\WinSCP\winscp.com" /script=script.txt /log=winscp.log /ini=nul 

如果仍然报错,可以查看生成的winscp.log日志,确认服务端返回的支持的认证类型,调整-webdav参数的对应值即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 13:36:11