3

我正在尝试使用 WinSCP 连接到我们的 ftp。但是如何使用 .net 程序集在 PowerShell 中定义端口!

我正在尝试制作一个解决方案,从服务器下载最近的文件,在服务器上将其删除,然后将其导入 MSSQL 数据库。

但我现在的问题是使用 WinSCP 连接到 ftp。

4

2 回答 2

1

没有任何代码很难说,但尝试这样的事情:

$sessionOptions = New-Object WinSCP.SessionOptions
$sessionOptions.Protocol = [WinSCP.Protocol]::Sftp
$sessionOptions.PortNumber = 2222
$sessionOptions.HostName = "example.com"
$sessionOptions.UserName = "user"
$sessionOptions.Password = "mypassword"
于 2014-08-13T11:23:39.153 回答
1

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
于 2021-04-13T15:17:50.337 回答