Неудачная попытка создания объекта winscp sessionoptions
Добрый день,
Нужна помощь в дописании скрипта. Скрипт выполняет следующие условия:
- Подключиться к SFTP серверу WinSCP
- Файл Dir_WinScp.txt в котором указан путь к локальной папке C:\Temp
- Файл DirArch_WinScp .txt в котором перечисляются удаленные папки на SFTP сервере:
/users/test/ms/ttr/archive/*
/ users/test/ms/invoice/archive/* - Копировать файлы из удаленных каталогов
- Удалить файлы после копирования
- Отключиться от SFTP сервера
Скрипт должен копировать файлы старше 6 месяцев (180 дней) по маске имени файла. Маска имени файла имеет следующий вид YYYYmm_Folder.7z:
Folder - имя папки которую архивировали
Заранее Спасибо за помощь
runtime automation error iin vba
I encountered the same problem. I have an older version of the dll installed and registered. I updated the installed version to the latest version. problem is I was not able to unregister the old dll version.
I encountered the runtime automotation error. After searching for solutions here is what I have done so far:
1. Unregistered the latest winscpnet.dll
2. Uninstalled the latest version
3. Re-installed previous version
4. Registered prev version of winscpnet.dll
5. Unregistered the prev version of winscpnet.dll
6. Checked with the registry if there are still winscp32.dll references (none were found. )
7. Re-installed latest version
8. Registered latest winscpnet.dll
Now I have the winscpnet32.tlb in same directory as WinSCP.exe executable
I open my excel file, re-reference the library in VBA editor, run my macro and still the automation error occurred.
here my code snippet
Hope someone can help me on this.
I encountered the same problem. I have an older version of the dll installed and registered. I updated the installed version to the latest version. problem is I was not able to unregister the old dll version.
I encountered the runtime automotation error. After searching for solutions here is what I have done so far:
.
Thank you for your reply. I followed the steps and looked for the possible version which I needed to "Unregister". I went through every version on sourceforge to get each installer.
Steps performed:
1. Install
2. Copy dll to install folder
3. Unregister dll
4. Uinstall
I went through several versions doing this. When I have completed doing this upto the latest version. I re-installed the latest version and registered the dll.
Upon running the macro no automation error occurred but it now says that "Method or Data not found" and upon debugging it goes to Session.Open.
[code]
Sub GetFilesFromFTP()
Dim ftp_session As New Session
Dim ftp_sessionoptx As New SessionOptions
With ftp_sessionoptx
.Protocol = Protocol_Ftp
.Hostname = GlobalVariable(FTP_SERVER)
.UserName = "anonymous"
.Password = ""
End With
У меня есть сценарий, который передает некоторые файлы через SFTP с помощью WinSCP. Краткое описание скрипта: $transferfiles = @("filename 1" "filename 2") foreach ($file in $transferfiles) < $file.
Мне нужно использовать WinSCP в контексте SqlServer (да, я знаю, что это не очень хорошая идея). Проблема с WinSCP в контексте сервера Sql заключается в том, что финализаторы не разрешены. Я знаю С.
Я использую ниже код для запуска команды SFTP через Jsch: public void putfile()< try < String command="winscp /script=D:\\command.txt" ; System.out.println(command); Runtime rt=Runtime.getRuntime().
Есть ли способ подключить код Visual Studio к программе WinSCP? Я пробовал это, но он не работает. Я установил это значение для внешнего редактора "C:\Users\Omistaja\AppData\Local\Code\update.exe -.
Мое требование состоит в том, что я хочу загрузить все локальные файлы с Windows-машины, которые старше 180 дней , на SFTP-сервер, используя пакетный файл. Соответствующие файлы во всех подкаталога.
Я ищу способ, чтобы мои файлы синхронизировались (задача) с веб-сервера (Ubuntu 14) на локальный сервер (Windows Server). Веб-сервер создает небольшие файлы, которые необходимы локальному серверу. .
Чтобы получить доступ к удаленной общей папке, мне нужно указать имя пользователя и пароль. Однако я понятия не имею, куда его поместить в мой код WinSCP. open ftps://ftpuser:password@hostname/ -ex.
Я использую сценарий PowerShell, сгенерированный в WinSCP, для sftp файлов в определенной папке. Он работает каждую пятницу утром, но мне нужно, чтобы они перемещали файлы в другую папку после их з.
Я пытаюсь загрузить полную папку через WinSCP. Однако файлы, которые у меня нет, могут быть загружены в них. /www/ /www/file1
Имейте некоторую основную форму, на которую я вызываю загрузку файлов с FTP. Когда эта операция поднята, я хочу видеть новую форму как ShowDialog и индикатор выполнения на ней, чтобы показываться п.
Я пытаюсь загрузить файлы из большого дерева рекурсивных каталогов, и я хочу, чтобы загруженные файлы были удалены после загрузки. Когда я true в параметр remove GetFiles , он удаляет все каталоги.
Я использую WinSCP для передачи файлов. Поскольку я хочу планировать это ежедневно, я использую командную строку, чтобы сделать это. Я сейчас использую командный файл для задачи. Я скопировал код д.
Я использую WinSCP CLI для сценария передачи файлов. Я использую только аутентификацию частного/открытого ключа, пароль не установлен. WinSCP.com /nointeractiveinput /command "open sftp://USER@HOST.
У меня есть сценарий WinSCP PowerShell, который загружает самый последний файл на сервере. Я хотел бы адаптировать его для загрузки самого последнего файла каждого типа файлов на сервере. Бонусные .
С моим сценарием я пытаюсь отсканировать каталог для подкаталога, который автоматически создается каждый день, который содержит дату в имени каталога. Как только он найдет дату вчерашнего дня (так .
Я пытаюсь скопировать из одной системы Windows 7 в другую. Я хочу, чтобы каталог назначения был C:\Windows\Temp . Если я опускаю целевой каталог, он копирует файл в домашний каталог удаленного комп.
Есть ли команда для пакетного файла WinSCP для добавления не дублируемых значений в удаленный файл в локальный файл? Это моя команда: @echo off "C:\Program Files (x86)\WinSCP\WinSCP.com" ^ /log tag-list"> sftp winscp batch-file
Есть ли способ удалить содержимое каталога с помощью WinSCP? Я пробовал это, но он не работает: synchronize remote -delete
Как подсчитать количество zip файлов, имеющихся в папке FTP в SSIS? Направьте меня, чтобы найти количество файлов.
Необходимо перенести 1 файл с старого хоста без доступа SSH к новому хосту, в котором у меня есть доступ к SSH. Нелегко понять это. Ищете простой ответ, если он есть. А также старайтесь избегать ме.
У меня есть приложение, которое запускает фоновый поток, который открывает сеанс WinSCP, который используется для выполнения таких вещей, как это: new Thread(() => < //do stuff SessionOptions op.
В настоящее время я пишу сценарий, который вызывает WinSCP, подключает сеанс SFTP, переносит группу файлов с локального сервера на удаленный сервер, закрывает соединение, а затем перемещает локальн.
У меня есть командный файл, который запустит файл.js, который через WinSCP проверяет, существует ли файл и возвращается в командный файл, если он это делает или нет. Проблема IS: она всегда возвращ.
У меня есть папка (Источник), которая содержит подпапки и файлы XML: Source\ Folder1\ Folder2\ Folder1.xml Folder2.xml Мне нужно перенести эти вложенные папки и файлы через SFTP с помощью WinSCP, н.
Привет, я пытаюсь получить имя файла, загруженного только с помощью localpath, т.е. C:\users\user\desktop\test.txt, поэтому я могу прикрепить его к электронной почте. Я использую powershell с библи.
Возможно, это вопрос из четырех частей: Загрузить в подкаталог Подкаталогов не существует Использовать другое имя удаленного файла, кроме локального файла. Подкаталоги должны иметь явные разрешения.
Я использую WinSCP для передачи файлов в удаленный экземпляр. C:\Program Files (x86)\WinSCP>WinSCP.com sftp://root@
мы должны передавать файлы с одного сервера на другой сервер через SFTP. (Планировщик заданий) В настоящее время передача происходит через FTP. Ниже приведен скрипт, который мы используем, чтобы пе.
Мы используем WinSCP 5.1.1. Когда мы FTP для размещения, WinSCP показывает время изменения файла некорректно. Кажется, что всегда будет 10 часов. Поскольку мы находимся в Сиднее, я предполагаю, что.
В настоящее время я пишу скрипт, который вызывает WinSCP, подключает сеанс SFTP, переносит группу файлов с локального сервера на удаленный сервер, закрывает соединение, а затем завершает работу. Я .
Я занимаюсь исследованиями обработки изображений с использованием изображения маммографии из базы данных цифровой базы данных скрининга маммографии (DDSM). Я нашел способ конвертировать изображение.
Рубрики
А так же делитесь знаниями, знакомьтесь с новыми утилитами и приложениями, учитесь у всегда готовых помочь ответить на самые сложные вопросы во всех сферах IT и программирования. Станьте гуру и экспертом разработки ПО, получите признание коллег, заработайте репутацию, создайте стартап или приложение которое будет работать на вас!
Я пытаюсь получить конкретные файлы с удаленного сервера с FTP/SFTP-соединением, проблема, с которой я сталкиваюсь, заключается в том, что я пытаюсь получить количество файлов в удаленном каталоге .
Я использую WinSCP для загрузки файла из SFTP, и это мой код. SessionOptions sessionOptions = new SessionOptions < Protocol = Protocol.Sftp, HostName = ConfigurationManager.AppSettings["SFTPDomain".
Я пытаюсь создать глобальный сеанс WinSCP. Мне нужно использовать сеанс в двух разных местах моего приложения для GetFiles и PutFiles . Моя проблема заключается в том, что для создания сеанса требу.
Я пытаюсь использовать WinSCP в визуальной студии. Я скачал и установил WinSCP с помощью пакета Managed NuGet. Я использовал приведенный ниже код в веб-приложении для передачи одного из файлов на у.
У меня возникла неприятная проблема, которую я хотел бы устранить, когда я получаю информацию об отладке, которую я не прошу в консоли Powershell и ISE. Это неприятность в том, что это мешает моей .
У нас есть задание, которое находится на сервере Windows, и оно отвечает за отправку файлов на ящик Linux через утилиту WinSCP. Мы наблюдали, что процесс передачи файлов не выполняется из-за ошибки.
Я пытаюсь подключиться к серверу с SFTP-соединением, но я пытаюсь выполнить аутентификацию с помощью отпечатка SSH, если это неверно, тогда следует попытаться использовать пароль SFTP. Проблема, с .
Я использую сборку WinSCP.NET для "мониторинга" на FTP-сервере и загружаю каждый файл, загружаемый на FTP-сервер. После того, как моя программа работала всю ночь, использование плунжера было более .
Я просто пытаюсь передать текстовые файлы с одного FTP- сервера на другой с помощью службы Windows . Я загружаю необходимые файлы с исходного FTP-сервера и сохраняю его локально в своей системе, а .
Я использую WinSCP + Powershell для автоматической передачи результатов сборки Jenkins на наш общий сервер, чтобы команды QA и Dev могли легко получить к ним доступ. WinSCP требуется, потому что он.
Это код, который будет выполнять 4 потока с интервалом в 15 минут. В последний раз, когда я его запускал, первые 15 минут были скопированы быстро (20 файлов за 6 минут), но 2-я 15-минутная скорость.
Я перестраиваю FTP-часть приложения системного монитора, должен иметь возможность загружать любой файл, который: .csv .xlsx .xls и когда я пытаюсь настроить эту маску, она возвращает 0 файлов, но е.
Я использую WinSCP для подключения к FTP и загрузки кучи файлов, но у меня возникают проблемы, когда файл не загружается, когда это происходит, скрипт останавливается, и следующие файлы не загружаю.
Я использую настольное приложение WinSCP на сервере Windows для физического интерфейса для загрузки файлов на сервер Linux. Я использую протокол SCP, а в дополнительных опциях передаю SSH-команду s.
У меня есть сценарий PowerShell, который загружает самые последние файлы определенных расширений файлов. Каталог FTP содержит сотни файлов с отметками времени (mmddhh), которые он очищает в конце к.
Я сделал небольшой сценарий оболочки PowerShell для модуля WinSCP, который удовлетворяет мои потребности. Как и в примере для синхронизации локальных и удаленных папок, мой файл использует событие.
Я использую скрипт PowerShell для извлечения файла из удаленного каталога. Я хочу получить файл только в том случае, если он был изменен в течение последнего часа. Мне удалось получить последний фа.
Я пытаюсь загрузить файл, используя следующий код, но получая ошибку ниже. Некоторые примечания: я использую Windows 7. Использование CrushFTP SFTP-сервера, способного подключаться с использованием.
Вот то, что я хочу сделать в простых условиях: сначала я хочу получить файлы (и, возможно, некоторые файлы). Если есть подкаталоги, я хочу также получить файлы в этих подкаталогах. Я использую Visu.
Я пытаюсь выполнить сценарий PowerShell из SSIS. Мой сценарий начинается с Add-Type -Path "WinSCPnet.dll" и вызывает ошибку, поскольку не может найти WinSCP.exe в папке, в которой находится мой сце.
Я загружаю файлы с FTP, используя библиотеку WinSCP.NET. Мой код session.ExecutablePath = _appSettings["ApplicationFolderPath"] + "WinSCP.exe"; session.Open(sessionOptions); var obj = session.ListD.
Я создал проект для передачи файла с клиента на сервер. Я передал файл и получил переданные файлы, такие как имя файла (something.avi) и процент (10%) файла, переданного, как показано ниже. Всякий .
Я пытаюсь разработать код для сохранения файла на SFTP-сервере, но ошибка в Session и отображение ошибки как определенный пользователем тип не определен Я не уверен, что ниже код работает или нет, .
Рубрики
А так же делитесь знаниями, знакомьтесь с новыми утилитами и приложениями, учитесь у всегда готовых помочь ответить на самые сложные вопросы во всех сферах IT и программирования. Станьте гуру и экспертом разработки ПО, получите признание коллег, заработайте репутацию, создайте стартап или приложение которое будет работать на вас!
Все ответы
Файл содержит Dir_WinScp.txt:
- Изменено Kazun Editor 3 августа 2015 г. 12:05
- Предложено в качестве ответа Alexander Rusinov Moderator 3 августа 2015 г. 13:59
При выполнение скрипта выдает ошибку.
PS C:\sftp> C:\SFTP\dev_1.ps1
Исключение при вызове "ListDirectory" с "1" аргументами: "Error listing directory '/users/test/ms/ttr/archive/*.7z'."
а встроенными скриптами не пробовали? WinSCP Scripting and Task Automation
У меня консольная утилита формировала файлы конфигураций(скрипты), затем запускался bat-ник, все работает отлично. Один минус - консольная программа winscp работает в один поток, но их можно запустить несколько копий с разными конфигами.
Прочитав несколько форумов и не найдя решения, сделав вывод что листинг директории не поддерживает расширение файлов. Удалил расширение файла
, получил следующую ошибку:
Исключение при вызове "Substring" с "2" аргументами: "Индекс и длина должны указывать на позицию в строке.
Имя параметра: length"
Пример исправленного скрипта:
Файл содержит Dir_WinScp.txt:
Буду благодарен за любую помощь.
Как я понимаю метод Substring(0,6) позволяет извлечь 6 первых символов из маски имени файла, которая соответствует yyyyMM. Когда я указываю условие Substring(0) - извлекаются все символы после заданного, условие отрабатывает. Почему не выполняется условие Substring(0,6)? Может проблема с оболочкой WinSCP?
Кто-нибудь может помочь пофиксить ошибку?
В чем проблема привести вывод для любой папки?
$session . ListDirectory ( "$i" ). Files
Правильно Вас понял, этот вывод Вам нужен?
PS C:\sftp> $i
/users/test/ms/invoice/archive
PS C:\sftp> $session.ListDirectory("$i").Files
Исключение при вызове "ListDirectory" с "1" аргументами: "Object is disposed"
строка:1 знак:1
+ $session.ListDirectory("$i").Files
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : InvalidOperationException
При выполнении вышеуказанного скрипта, получил следующий результат:
PS C:\sftp> C:\SFTP\TEST007.ps1
Результат:
PS C:\sftp> C:\SFTP\TEST007.ps1
Name
----
.
..
201201_Temp1.7z
201302_Temp1.7z
- Помечено в качестве ответа Kazun Editor 4 сентября 2015 г. 10:36
Скрипт отработал без ошибок, файлы старше 6 месяцев переместились. Как быть с блоками Try/Catch/Finally?
Не могли бы Вы более подробно описать чем и как осуществляется контроль ошибок в этом скрипте. Спасибо.
Столкнулся со следующей проблемой, когда в удаленном каталоге присутствует архивы с разной длиной имени файла. Имя архива состоит из 1-2 символов (Пример 08.7zip или A1.7zip), который не соответствует заданному формату YYYYmm.
Скрипт не отрабатывает, выбивает ошибку:
PS C:\sftp> C:\SFTP\TEST001.ps1
Исключение при вызове "Substring" с "2" аргументами : " Индекс и длина должны указывать на позицию в строке .
Имя параметра : length"
C:\SFTP\TEST001.ps1:32 знак :6
+ if([DateTime]::TryParseExact($_.Name.SubString(0,6),"yyyyMM",[Globalization.Cu .
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : ArgumentOutOfRangeException
Когда длина имени файла состоит от 3 и более символов скрипт отрабатывает успешно. Нужно добавить условие, что файлы которые соответствуют первым 6 символам YYYYmm должны строго копироваться, скрипт должен выполнятся даже если в каталоге присутствуют файлы где длина имени меньше 2 символов.
К сожалению 1С пока не позволяет своими средствами обмениваться файлами с SFTP сервером.
Столкнувшись с этой проблемой, оптимальным для себя выбрал вариант с использованием бесплатного SFTP клиента:WinSCP.
Я не нашел в сети примеров работы 1С с этой утилитой через COM-соединение, поэтому выкладываю свой. Возможно кому-то будет полезен.
Мир этому дому!
Спасибо за интересную информацию - взял на заметку. Отдельное спасибо за ссылки по теме - будем разбираться.
(2) Vladuha, SFTP и FTPS - это разные вещи. SFTP - это фтп ssh сервера, а FTPS - это фтп через SSL/TLS.
Да действительно, заявлено что 8.3 умеет устанавливать FTPСоединение по SSL, не пробовал. Я привел рабочий пример для 8.2. Спасибо за информацию
норм, а я когда-то лет 7 назад для 8.1 настраивал какого-то ftp-клиента на сервере, прописывал профили, а потом вызывал через КомандаСистемы.
COM - это хорошо
а 8.3 - лучше :)
Добрый день!
Очень благодарен за информацию!
Только у меня не получается подключиться.
Не пойму что нужно указать в поле "SshHostKeyFingerprint"
где взять значение для этого поля?
Через обычного клиента WinSCP подключаюсь нормально. Там просто указываю адрес, юзера и пароль.
Вывод: данная реализация позволяет передавать файлы из 1С: Предприятие 8.2. большого размера по защищенному протоколу SFTP. Плюс появляется возможность переносить часть функционала из 1С во внешнюю компоненту, что защищает написанный код и позволяет реализовывать дополнительный, не доступный 1С функционал.
Ребята, а что таки писать в поле sessionOptions.SshHostKeyFingerprint ?
система мне отвечает так:
Соединение неожиданно разорвано. Сервер вернул код завершения команды 0.
вот от куда беру код:
(16) sandybaev,
какая именно команда возвращает ошибку, .Open ? С этими же параметрами через саму программу подключиться удается?
(17) ram3, Все, брат. Получилось. В параметр SshHostKeyFingerprint Я передал публичный ключ сгенерированный самим sftp серваком. А ошибка подключения была в изменненом пароле администратора (я об этом узнал потом).
Огромное спасибо вроде все заработало.
ТОлько единственное не пойму зачем ты перемещаешь файл этой командой -
ПереместитьФайл(ВыгруженныйФайл.FileName, ХранилищеВыгруженныхФайлов);
Если на сервер ты уже закидываешь эти файлы командой
Помогите
Как подключится без пароля с приват ключем.
sessionOptions = Новый COMОбъект("WinSCP.SessionOptions"); //Создаем объект SessionOptions
sessionOptions.HostName = "1.1.1.1";
sessionOptions.UserName = "log";
//sessionOptions.Password = "mypassword";
sessionOptions.PortNumber = "22";
sessionOptions.SshHostKeyFingerprint = "ssh-rsa 2048 010101010110101001012010";
sessionOptions.SshPrivateKeyPath = "С:\1111.ppk";
session = Новый COMОбъект("WinSCP.Session"); //Создаем объект Session
//параметр необходимо использовать если пути регистрации DLL и исполняемого файла различны
session.ExecutablePath = "C:\Program Files (x86)\WinSCP\winscp.exe";
Ошибка:
: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (WinSCPnet): Disconnected: No supported authentication methods available (server sent: publickey)
(19) ram3,
Не подскажешь.
Как теперь я могу создавать и менять папки на sftp серваке.
Просто тут пишу обработку для обмена а она по ТЗ должна уметь создавать и менять папки.
(22) ram3, Все, плюсанул вроде как. Почитаю на досуге. Спасибо большое. Тебе бы дальше эту тему развить. желательно с обилием скринов :)
(22) ram3, отличная публикация! Есть вопрос по такой задаче: необходимо синхронизировать файлы командой SynchronizeDirectories. Пишу:
transferResult = session.SynchronizeDirectories(Local, ПутьЗагрузкиЛокальный, ПутьКФайламНаСервере, Ложь, Ложь, , "*.wav");
Но не знаю, что ставить в первый параметр. По-идее, там должен быть класс SynchronizationMode mode (Например: SynchronizationMode.Local, SynchronizationMode.Remote and SynchronizationMode.Both).
Как его объявить в 1С?
(24) kashafeev,
думаю можно так:
SynchronizationMode = Новый COMОбъект("WinSCP.SynchronizationMode");
но не уверен, надо пробовать.
(26) kashafeev,
а так:
WinSCP = Новый COMОбъект("WinSCP");
SynchronizationMode = WinSCP.SynchronizationMode;
мне это не нужно было, сейчас к сожалению времени нет разбираться. Посмотри примеры на сайте разработчика, может что найдешь
(26) kashafeev,
SynchronizationMode mode: 0 - local, 1 - remote, , 2 - both
SynchronizationCriteria criteria: 0 - None, 1 - Time, 2 - Size, 3 - Either
спасибо за чудесную реализацию.
в сети навалом обработок, но все они работают через командную строку, а тут COM-соединение. То что доктор прописал )))) в благодарность скачал, хотя и качать ничего не нужно, все понятно из текста статьи
ребята помогите
есть коренвая директория сервера /public
в ней я программно создаю поддиректорию командой session.CreateDirectory("/public" + "ОбластьКонтрагента")
все ок, создается теперь надо дальше в директории области контрагента создать еще одну папку (последнюю) под названием "НаименованиеКонтрагента"
как это сделать через функции WinSCPnet.dll?
перерыл из форум и хэлп, ничего нет.
Коллеги, подскажите как зарегистрировать WinSCP.dll, дело в том, что я в принципе такого файла найти не могу, нашел WinSCPnet.dll.
Зарегистрировал библиотеку командой
в ответ получил
Пытаюсь соединиться по sftp, 1 ска выдает ошибку:
: Ошибка при вызове конструктора (COMОбъект): -2147221164(0x80040154): Недопустимая строка с указанием классаОбщийМодуль.МойМодуль.Модуль(296)>
Что не так сделано?
Коллеги, подскажите как зарегистрировать WinSCP.dll, дело в том, что я в принципе такого файла найти не могу, нашел WinSCPnet.dll.
Хотя может быть мои знания устарели, и передача файла по SFTP в 1с возможна без лишних плясок - напрямую из платформы?
Я бы не стал называть это ошибкой, с версией 515 все работает. Если хотите использовать свежую версию, возможно придется адаптировать код. В заголовке статьи написано ПРИМЕР, это не готовое решение на все времена, и пожизненную поддержку никто не обещал.
Хотя может быть мои знания устарели, и передача файла по SFTP в 1с возможна без лишних плясок - напрямую из платформы?
На сколько я знаю, платформа 1С пока не поддерживает sFTP, только FTPS.
что значит ошибка:
: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (WinSCPnet): Алгоритм обмена ключей diffie-hellman-group1-sha1 не был проверен!
как проверить алгоритм?
при подключение оболочкой спрашивает про тоже самое, но тут можно нажать ДА и все ок.
а как нажать Да через КОМ-соединение?
в оболочке нашел как сдвинуть свой алгоритм наверх.
но как в ком. пока ищю
добавил в парамтерах сессии
bool GiveUpSecurityAndAcceptAnyTlsHostCertificate Give up security and accept any FTPS/WebDAVS server TLS/SSL certificate. To be used in exceptional situations only, when security is not required. When set, log files will include warning about insecure connection. To maintain security, use TlsHostCertificateFingerprint.
но не помогло
версия последняя на седня 5.9.1. так и не победил.
искать старые может. в них видимо такой проверки не было
Коллеги, после установки 1С платформы 8.3.9 и обновления WinSCP на 5.9.2 у меня просто "Неизвестная ошибка"
: Ошибка при вызове метода контекста (Open)
session.Open(sessionOptions);
по причине:
Неизвестная ошибка
Даже и не знаю куда копать. Может кто подскажет?
(46) KokaDu, два варианта: либо качать старую версию WinSCP, либо смотреть документацию по новой версии и менять вызов метода .Open, видимо здесь "sessionOptions" что-то не соответствует новой версии.
Уже были проблемы с новой версией выше в комментариях. Я с WinSCP уже давно не работаю, проверить к сожалению не могу.
(47) ram3, перерыл документацию, ничего нового по "Open" не нашел.
Проблему обошел тем, что создал bat-ник из самого WinSCP , который запускается из 1С.
В любом случае спасибо.
(47) ram3, перерыл документацию, ничего нового по "Open" не нашел.
Проблему обошел тем, что создал bat-ник из самого WinSCP , который запускается из 1С.
В любом случае спасибо.
Проблема ошибки OPEN встала очень остро.
Переход на старую версию не помог. ВЫявил следующую закономерность: при простой регистрации компоненты через командную строку и работе на клиенте все ок.
Как только регистрируем компоненту в службе компонентов чтоб работало на серваке- ловим ошибку OPEN. Может быть кто то победил ее?
После регистрация WinSCP как 64 битного приложения проблема с OPEN остаётся.
Предлагаю следующие варианты решения с использованием батника:
Во вложении примеры с получением и отправки файла.
У меня есть еще решение с использованием Putty, если будет интересно, тоже могу поделиться.
далее послать принять как обычно
ПС вин2008р2 64. 1с8*64
Хотел бы добавить, что лично у меня алгоритм шифрования был иной, тогда нужно применить несколько иной метод соединения.
Спасибо за статью.
Немного покурив интернеты и мануал, выяснил, что библиотека умеет работать не только с SFTP, но и с FTPS.
Хотел добавить, если вы устанавливаете FTPES соединение
УРЛ + Логин + ":" + Пароль + "@" + АдресСервера;
sessionOptions.ParseUrl(УРЛ);
необходима версия WINSCP 5.9.2 и выше
Добавлю к "как выяснилось" к посту выше
скачав с их офф сайта winSCPnet.dll - регистрируете через RegAsm но согласно разрядности вашей ОС.
да и если работаете в клиент серверном варианте, то, версия утилиты на сервере должна совпасть с вашей локальной установкой.
Чтобы не париться с SshHostKeyFingerprint
можно так сделать:
fingerprint = session.ScanFingerprint(sessionOptions,"SHA-256");
sessionOptions.SshHostKeyFingerprint = fingerprint;
попробовал написать так как написано у Вас, выдает ошибку
подскажите почему такая ошибка может выдаваться?
Немного не в тему, но с FTPS тоже долго искал инфу, пришлось справку читать :)
Сервер = Новый FTPСоединение(ИПFTP, 21,ЛогинFTP,ПарольFTP,,Истина,300,, УровеньИспользованияЗащищенногоСоединенияFTP.ИспользоватьЕслиВозможно) ;
на удивление заработало. 8.3.11, в режиме совместимости 8.2.16
Мои 5 копеек:
// Подключаемся
session = Новый COMОбъект("WinSCP.Session"); //Создаем объект Session
session.open(sessionOptions);
версия WinSCP 5.11.3
Подскажите пожалуйста, я могу получить файлы (например *.txt) с sFTP, не выгружая в каталог на диске, а сразу в 1С?
Добрый день! подскажите можно же выгружать файл txt из 1с в каталог и отправлять на sftp сторонними средствами? Этот вариант хуже, чем использовать WinSCP ?
подскажите правильно ли я понимаю, что для получения и работы с полем sessionOptions.SshHostKeyFingerprint нужно сгенерировать открытый ключ и разместить его на сервере SFTP, а приватный ключ зарегистрировать на своем компьютере и только после этого можно обращаться обработкой из 1с на sftp сервер?
в программе WinSCP на нужном соединении открываете Manage - Generate Session URL/Code.
Далее на закладке URL установите опцию SSH host key.
Внизу в окне URL появится строка вида fingerprint=ecdsa-sha2-ххххххххххххххххххххххххххх
строку после fingerprint= присваиваете sessionOptions.SshHostKeyFingerprint. Это и есть ключ.
Вот эту всю историю нужно написать до .Оpen
Отмечу с какими сложностями столкнулся при установке библиотеки:
3. SshHostKeyFingerprint можно взять в winscp . Для этого подключаемся к sftp, главное меню -- соединение -- Информация о протоколе сервере. В открывшемся окне копируем значение MD5. При вставке к нему добавится ssh.
could not create object named "WinSCP.SessioOption"
I have 2 devices running windows 10 and a server running 2012R2 and when I run a wsf script to upload files via ftp one windows 10 device works OK but the other w10 device and the 2012 server both give an error
could not create object named "WinSCP.SessioOption"
I have registered the com on all devices using the following commands without error
code excerpt failing - Set sessionOptions = WScript.CreateObject("WinSCP.SessionOptions")
duetto Joined: 2017-11-16 Posts: 1
i have the same problem and yes i have an earlier version of winscp registered. how do you delete/unregister it? i have tried regsvr32 /u "path to registered winscp"
i have the same problem and yes i have an earlier version of winscp registered. how do you delete/unregister it? i have tried regsvr32 /u "path to registered winscp"
Ответы
- Помечено в качестве ответа Kazun Editor 4 сентября 2015 г. 10:36
Ответы
- Помечено в качестве ответа Kazun Editor 4 сентября 2015 г. 10:36
Читайте также: