通过Powershell自动执行SSL FTP上传

时间:2012-08-09 14:59:36

标签: powershell ftpwebrequest

我已经搜索并阅读了很多关于在Powershell中下载SSL FTP文件的内容......但是我该如何上传它们?我有一个我需要每天上传的文件名,我收到的错误是我没有登录。 我目前正在上传到其他FTP网站,如下所示:     $ Filename =“myfile.txt”     $ FullPath =“\ server \ share \ $ Filename”     $ ftp =“ftp:// user:pass@ftp.domain.com/$Filename”     $ ftpWebClient = New-Object System.Net.WebClient     $ ULuri = New-Object System.URI($ ftp)     $ ftpWebClient.UploadFile($ ULuri,$ FullPath)

我是否需要为SSL FTP上传创建一个全新的代码块,或者我只是需要对此代码进行微调?

谢谢!

2 个答案:

答案 0 :(得分:6)

我使用WinSCP DLL来完成这些工作。看看这里的一些例子: http://winscp.net/eng/docs/library#powershell

这是我的一些示例代码。

[Reflection.Assembly]::LoadFrom("D:\WinSCP.dll") | Out-Null
$sessionOptions = New-Object WinSCP.SessionOptions
$sessionOptions.Protocol = [WinSCP.Protocol]::Sftp
$sessionOptions.HostName = "192.168.1.120"
$sessionOptions.UserName = "user"
$sessionOptions.Password = "pass"
$session = New-Object WinSCP.Session
$session.Open($sessionOptions)

#upload stuff here, check the link for detail on how, and use powershell to populate your file list!

$session.Dispose()

答案 1 :(得分:4)

由于您已在脚本中使用.NET框架中的WebClient类,我建议您通过在PowerShell中嵌入C#代码,从WebClient创建支持FTP over TLS的派生版本:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select class="form-control" id="citizenType">
  <option value="value1">value1</option>
  <option value="value2">value2</option>
</select>

<select id="grade"></select>