WinSCP и определенный порт

Я пытаюсь подключиться к нашему ftp с помощью WinSCP. Но как я могу определить порт в PowerShell, используя сборку .net!

Я пытаюсь найти решение, в котором я загружаю последние файлы с сервера, удаляю их на сервере, а затем импортирую в базу данных MSSQL.

Но теперь моя проблема связана с подключением к ftp с помощью WinSCP.


person Kwire    schedule 13.08.2014    source источник


Ответы (2)


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
person SoEzPz    schedule 13.04.2021

Трудно сказать без кода, но попробуйте что-то вроде этого:

$sessionOptions = New-Object WinSCP.SessionOptions
$sessionOptions.Protocol = [WinSCP.Protocol]::Sftp
$sessionOptions.PortNumber = 2222
$sessionOptions.HostName = "example.com"
$sessionOptions.UserName = "user"
$sessionOptions.Password = "mypassword"
person user3316995    schedule 13.08.2014