Powershell та SFTP.exe


1

Чи можливо передавати вміст папки на сайт SFTP в локальний файл, схожий на програму вікна sinnate ftp.exe, де синтаксис:

dir / MainDir / SubDir c: \ test \ ftp \ CurrentContents.txt

але той самий синтаксис не працює з SFTP.exe. Мені потрібно мати можливість одночасно обробляти одне ім’я файлу в скрипті повноважень, і я не бачу способу передавати імена файлів із програми SFTP.exe в сценарій powerhell і назад, не маючи можливості аналізувати текстовий файл із вмістом каталогу .

Якщо у когось є якісь ідеї чи пропозиції, будь ласка, повідомте мене. дякую р.п.

Відповіді:


1

Я використовую .NET компоненти Rebex для FTPS & SFTP у своїх програмах C # та скриптах PowerShell. Мені здається, що це набагато простіше, ніж ковзання навколо зовнішніх програм, які насправді не розроблені для безперебійної взаємодії зі сценаріями та іншими програмами.

Редагувати: оскільки гроші - це проблема, чи спробували ви скористатись однією з утиліт, що входять у комплект PuTTY ?


Я вдячний за відповідь, але, як державне агентство, що не має коштів на додаткове програмне забезпечення, ціна в 350 доларів поза лігою.
користувач194104

За $ 20 / годину (щоб полегшити математику), якщо ви витратили 2 дні на боротьбу sftp.exeі ще не змусили її працювати, ви вже витратили близько 350 доларів коштів агентства і досі не маєте рішення. Я розумію , що ви говорите, але час дійсно має значення в доларах , прикріплене до неї. Перегляньте мою редакцію для ще однієї пропозиції.
alroc

0

Функція Push-FTP від PowerShell Pipeworks робить це, але не так ідеально, як хотілося б. Я буду вносити потрібні зміни для підтримки безшовного конвеєра через кілька днів. Він також забезпечує смугу прогресу під час завантажень.

Ось приклад:

Push-Ftp -Path c:\Example -Include *.aspx

0

Я використовую шпаклівку psftp, яка чудово працює з powerhell.

Використання:

давайте створимо $ tempContentFile, що містить ftp команди в кодуванні ASCII

$tempContentFile = "$($workdir)\temp_get.txt"
$tempContent = "get -r /root/home/someuser/filestoDownload C:\temp\DownloadedFiles"
$out = out-file -filepath $tempContentFile -inputobject $tempContent -encoding ASCII;

Спочатку нам потрібно переконатися, що сертифікат віддаленого сервера приймається / зберігається локально

$out = echo Y|.\plink.exe -v -ssh $($attribute_IP) -l $($attribute_user) -pw $($attribute_password) -batch exit 2>&1

Чим саме команда psftp:

$out = .\psftp.exe $($attribute_IP) -l $($attribute_user) -pw $($attribute_password) -b $tempContentFile
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.