1 votes

Powershell et SFTP.exe

Est-il possible de canaliser le contenu d'un dossier sur un site SFTP vers un fichier local similaire au programme ftp.exe de la fenêtre sinate où la syntaxe :

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

mais la même syntaxe ne fonctionne pas avec SFTP.exe. J'ai besoin de pouvoir traiter un nom de fichier à la fois dans un script de powershell et je ne vois aucun moyen de faire passer des noms de fichiers du programme SFTP.exe au script de powershell et inversement sans pouvoir analyser un fichier texte avec le contenu du répertoire.

Si quelqu'un a des idées ou des suggestions, faites-le moi savoir. Merci rp

1voto

fioan89 Points 133

を使用しています。 Les composants .NET de Rebex pour FTPS et SFTP dans mes programmes C# et mes scripts PowerShell. Je trouve cela beaucoup plus facile que de se trimballer des programmes externes qui n'ont pas vraiment été conçus pour interagir de manière fluide avec les scripts & autres applications.

Edit : Puisque l'argent est un problème, avez-vous essayé d'utiliser l'un des utilitaires suivants fourni avec PuTTY ?

0voto

devguy Points 550

La fonction Push-FTP de Pipeworks PowerShell le fait, mais pas aussi parfaitement que je le voudrais. Je ferai les modifications nécessaires pour supporter le pipelining sans faille dans quelques jours. Il fournit également une barre de progression pendant les téléchargements.

Voici un exemple :

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

0voto

Laky Points 101

J'utilise putty psftp qui fonctionne très bien avec powershell.

Utilisation :

créons $tempContentFile contenant des commandes ftp dans ASCII codage

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

Nous devons d'abord nous assurer que le certificat SSL du serveur distant est accepté/stocké localement.

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

que la commande psftp elle-même :

$out = .\psftp.exe $($attribute_IP) -l $($attribute_user) -pw $($attribute_password) -b $tempContentFile

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X