WinSCP 在 PowerShell 中禁用 ResumeSupport

WinSCP Disable ResumeSupport in PowerShell

我正在使用 WinSCP 写入以将 SQL 服务器连接到 SFTP 服务器。我正在尝试将文件写入 SFTP 服务器,我只能在其中写入访问权限,而不能修改。我遇到了问题,因为我回来了

Cannot create remote file '/xxx.filepart'.

文档表明这是因为我没有对目标目录的修改权限。我这样做 WinSCP -> 首选项 -> Endu运行ce -> 禁用
我检查了 winscp.ini 文件并且 ResumeSupport2(我相信这意味着禁用)。我 运行 "echo $transferOptions.ResumeSupport" 它说它处于默认状态。

我已经检查了这个文档:
https://winscp.net/eng/docs/ui_pref_resume
https://winscp.net/eng/docs/library_transferoptions#resumesupport

但是,我没有看到 PowerShell 示例,只有 C#。

我尝试了 $transferOptions.ResumeSupport.State = Off$transferOptions.ResumeSupport.Off 等各种排列。其中之一说它是只读的。

我知道 $transferOptions 是这里的一个变量,但它来自默认脚本。对象确定 t运行sfer options $transferOptions = New-Object WinSCP.TransferOptions

在此先感谢您的帮助

编辑:总体问题是我对服务器只有写权限,但没有修改权限。我收到一个新错误:“无法覆盖远程文件‘/xxx’。$$。看起来美元符号是它试图创建的某种临时文件。有没有办法禁用导致此问题的任何设置?

在 PowerShell 中使用枚举的语法在 文章 Using WinSCP .NET assembly from PowerShell.

Enumeration values are accessed using static field syntax [Namespace.Type]::Member, for example [WinSCP.Protocol]::Sftp.


您可以找到 getput 命令文档的 TransferResumeSupport.State in Converting to .NET assembly 部分的 PowerShell 示例:

$transferOptions = New-Object WinSCP.TransferOptions
$transferOptions.ResumeSupport.State = [WinSCP.TransferResumeSupportState]::Off
$session.GetFiles(..., ..., $False, $transferOptions).Check()

WinSCP GUI can also generate a code template(包括TransferOptionsTransferResumeSupportState代码)给你。