use*_*163 2 powershell ssl 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上传创建一个全新的代码块,或者我只是需要对此代码进行微调?
谢谢!
我使用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()
Run Code Online (Sandbox Code Playgroud)
小智 6
由于您已经在脚本中使用了 .NET 框架中的 WebClient 类,我建议您通过在 PowerShell 中嵌入 C# 代码,从支持 FTP over TLS 的 WebClient 创建一个派生版本:
$typeDefinition = @"
using System;
using System.Net;
public class FtpClient : WebClient
{
protected override WebRequest GetWebRequest(Uri address)
{
FtpWebRequest ftpWebRequest = base.GetWebRequest(address) as FtpWebRequest;
ftpWebRequest.EnableSsl = true;
return ftpWebRequest;
}
}
"@
Add-Type -TypeDefinition $typeDefinition
$ftpClient = New-Object FtpClient
$ftpClient.UploadFile("ftp://your-ftp-server/yourfile.name", "C:\YourLocalFile.name")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4193 次 |
| 最近记录: |