我正在尝试使用 WinSCP 连接到我们的 ftp。但是如何使用 .net 程序集在 PowerShell 中定义端口!
我正在尝试制作一个解决方案,从服务器下载最近的文件,在服务器上将其删除,然后将其导入 MSSQL 数据库。
但我现在的问题是使用 WinSCP 连接到 ftp。
我正在尝试使用 WinSCP 连接到我们的 ftp。但是如何使用 .net 程序集在 PowerShell 中定义端口!
我正在尝试制作一个解决方案,从服务器下载最近的文件,在服务器上将其删除,然后将其导入 MSSQL 数据库。
但我现在的问题是使用 WinSCP 连接到 ftp。
没有任何代码很难说,但尝试这样的事情:
$sessionOptions = New-Object WinSCP.SessionOptions
$sessionOptions.Protocol = [WinSCP.Protocol]::Sftp
$sessionOptions.PortNumber = 2222
$sessionOptions.HostName = "example.com"
$sessionOptions.UserName = "user"
$sessionOptions.Password = "mypassword"
WinSCP SessionOptions链接
WinSCP 会话选项默认为 SFTP 和 PORT 22,因此普通会话对象只需要像这样的一些东西......
注意:我将在 Visual Basic 6 中显示以这种方式使用库的任何人,但问题所问的 VB.net、C# 和 PowerShell 的逻辑是相似的。
Dim sessionOptions
Set sessionOptions = CreateObject("WinSCP.SessionOptions")
With sessionOptions
.HostName = SftpUrl
.UserName = UserName
.Password = UserPassword
.SshHostKeyFingerprint = "ssh-rsa 2048 Ue9.................................="
End With
Dim sftpSession
Set sftpSession = CreateObject("WinSCP.Session")
On Error GoTo YOURERROR
sftpSession.open sessionOptions
If sftpSession.opened Then
'Do stuff...
End If
上面的代码正在工作并连接到真实的服务器。
在您的问题中,您最初要求使用 FTP,尽管您确实正确并说 SFTP。但是,我也会显示一个 FTP 请求,因为 WinSCP 支持它,并且示例至少需要设置协议。
WinSCP根据使用的协议设置端口,所以在下面的例子中我们仍然不需要设置端口。
如果端口与所使用协议的默认服务器端口不同,则只需设置端口。
Dim sessionOptions
Set sessionOptions = CreateObject("WinSCP.SessionOptions")
With sessionOptions
.Protocol = Protocol_Ftp
.HostName = FtpUrl
.UserName = UserName
.Password = UserPassword
End With
Dim FtpSession
Set FtpSession = CreateObject("WinSCP.Session")
On Error GoTo YOURERROR
FtpSession.open sessionOptions
If FtpSession.opened Then
'Do stuff...
End If