WinSCP Отключить ResumeSupport в PowerShell

Я использую WinSCP для записи для подключения SQL-сервера к SFTP-серверу. Я пытаюсь записать файл на сервер SFTP, где у меня есть доступ только для записи, а не для изменения. У меня проблема, потому что я возвращаюсь

Невозможно создать удаленный файл '/xxx.filepart'.

Документация предполагает, что это связано с тем, что у меня нет доступа на изменение целевого каталога. Я сделал это WinSCP -> Настройки -> Выносливость -> Отключить. Я проверил файл winscp.ini и ResumeSupport равен 2 (я считаю, что это означает отключение). Я запустил "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 здесь переменная, но она исходит из сценария по умолчанию. Объект определяет варианты трансфера $transferOptions = New-Object WinSCP.TransferOptions

Заранее спасибо за помощь

edit: Общая проблема в том, что у меня есть доступ только для записи на сервер, но я не могу его изменять. Я получаю новую ошибку: «Невозможно перезаписать удаленный файл '/xxx'.$$. Похоже, знаки доллара - это своего рода временный файл, который он пытается создать. Есть ли способ отключить любой параметр, вызывающий это?


person Jay    schedule 08.02.2016    source источник


Ответы (1)


Синтаксис для использования перечисления в PowerShell описан в статье Использование сборки WinSCP .NET из PowerShell.

Доступ к значениям перечисления осуществляется с помощью синтаксиса статического поля [Namespace.Type]::Member, например [WinSCP.Protocol]::Sftp.


Вы можете найти пример PowerShell для TransferResumeSupport.State в Преобразование в сборку .NET документации по командам get и put:

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

GUI WinSCP также может сгенерировать для вас шаблон кода (включая коды TransferOptions и TransferResumeSupportState).

person Martin Prikryl    schedule 08.02.2016
comment
Спасибо, Мартин! WinSCP потрясающий. Я знал, что мне нужно было случиться, я просто не мог понять, как это сформулировать. - person Jay; 09.02.2016
comment
Добро пожаловать. Хотя в StackOverflow мы благодарим, принимая и / или голосуя за ответ. - person Martin Prikryl; 09.02.2016