标签: winscp-net

PowerShell 中的 WinSCP .NET 程序集 - 创建 SessionOptions - 提供的值无效,或属性为只读

我正在尝试使用 PowerShell 使用 WinSCP 自动传输文件。我已经安装了 .NET 程序集。在我添加的代码中,我为了隐私取出了凭据和主机名,并且我还使用了WinSCPnet.dll. 这是我得到的错误:

错误:提供的值无效,或属性为只读。更改值,然后重试。

$sessionOptions在第 5 行定义了这个。关于我可以做些什么来运行它的任何想法?

try
{
    Add-Type -Path "WinSCPnet.dll"

    $sessionOptions = New-Object WinSCP.SessionOptions -Property @{
        Protocol = [WinSCP.Protocol]::Sftp
        HostName = "HostName"
        UserName = "UserName"
        Password = "Password"
        SshHostKeyFingerprint = "ssh-rsa 2048 Fingerprint here"
    }

    $session = New-Object WinSCP.Session

    try
    {
        # Connect
        $session.Open($sessionOptions)

        # Upload files
        $transferOptions = New-Object WinSCP.TransferOptions
        $transferOptions.TransferMode = [WinSCP.TransferMode]::Binary

        $transferResult =
            $session.PutFiles("Source", "Destination", $False, $transferOptions)

        # Throw on any error
        $transferResult.Check()

        # Print results …
Run Code Online (Sandbox Code Playgroud)

.net ssh powershell winscp winscp-net

3
推荐指数
1
解决办法
3987
查看次数

WinSCP .NET库:连接到SFTP服务器而不指定SSH主机密钥指纹

在WinSCP的当前稳定版本中,似乎使用SshHostKeyFingerprint是强制性的,没有这种方法就无法连接到SFTP服务器SessionOptions.我可以看到旁路的能力被添加到beta(5.2)但是我想知道是否可以在没有这个指纹的情况下进行连接.

ssh sftp winscp public-key winscp-net

2
推荐指数
1
解决办法
1万
查看次数

使用 WinSCP 禁止在 SFTP 或 SCP 中使用主机密钥

我正在开发一个应用程序,在其中使用 WinSCP .NET 程序集(版本 5.5.0.3839)下载文件

我下载文件的代码如下

public bool ReceiveFile(string ftpFilePath,out String downloadedFileName, String DestinationPath)
{
    bool sendingStatus = false;
    downloadedFileName = string.Empty;
    try
    {
        if (sessionOptions != null)
        {
            using (Session session = new Session())
            {
                // Connect
                bool isSessionOpened = OpenSession(session);
                if (isSessionOpened)
                {
                    // Upload files
                    TransferOptions transferOptions = new TransferOptions();
                    transferOptions.TransferMode = TransferMode.Automatic;

                    TransferOperationResult transferResult;
                    transferResult = session.GetFiles(ftpFilePath, DestinationPath, false, transferOptions);
                    // Throw on any error
                    transferResult.Check();

                    // Print results
                    foreach (TransferEventArgs transfer in transferResult.Transfers)
                    {
                        sendingStatus …
Run Code Online (Sandbox Code Playgroud)

c# sftp winscp public-key winscp-net

2
推荐指数
1
解决办法
1万
查看次数

WinSCP .NET程序集 - 如何将文件上传到家中?

我想将文件上传到服务器的主目录(根目录),而不是文件夹.

我该怎么做?(使用C#)

transferResult = session.PutFiles(path, "\\", true, transferOptions);
Run Code Online (Sandbox Code Playgroud)

如果我使用\\remotePath,上传的文件改名.

c# winscp winscp-net

2
推荐指数
1
解决办法
4236
查看次数

WinSCP:上传/下载文件时查看进度

我使用WinSCP .NET库通过使用PutFiles(..)和从SFTP服务器上载/下载文件GetFiles(..).

有没有办法在上传/下载此服务器的文件时查看进度?例如,获取已下载的文件大小的百分比.

谢谢,迈克尔

c# winscp winscp-net

2
推荐指数
1
解决办法
1870
查看次数

WinSCP.SessionRemoteException:将文件复制到远程端失败。无法更改为“ / ftp:/”;找不到“ ftp:”

enter code here我将文件放在远程FTP服务器上时遇到问题。

我正在使用带有C#的WinSCP .NET程序集。

我能够连接到FTP服务器,但是当我尝试使用session.PutFile(local,remote)它时,它会跳到transferResult.Check()一个错误:

{WinSCP.SessionRemoteException:传输文件'C:\ testfile.txt时出错。---> WinSCP.SessionRemoteException:将文件复制到远程端失败。无法更改为“ / ftp:/”;找不到“ ftp:”。

请在下面找到我的代码。

private static void transferWinSCP()
{
    string userName = myUsername;
    string password = myPassword;
    string path = ftp://hostname.com/f/fofd671e-0eee-4c23-932d-4ba32c938c8f;
    string logPath = ConfigurationManager.AppSettings["LogPath"];**
    try
    {
        SessionOptions sessionOptions = new SessionOptions
        {
            Protocol = Protocol.Ftp,
            HostName = "hostname.com",
            PortNumber = 990,
            UserName = userName,
            Password = password,
            FtpSecure = FtpSecure.Implicit,
            FtpMode = FtpMode.Passive,
            TlsHostCertificateFingerprint = "xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx"
        };

        using (Session session = new Session())
        {

            session.SessionLogPath …
Run Code Online (Sandbox Code Playgroud)

c# ftp winscp winscp-net

2
推荐指数
1
解决办法
9853
查看次数

如何使用 WinSCP 和 C# 从服务器获取 SSH 指纹

我想在用户第一次访问服务器时获取指纹,然后保存该指纹(这不会是问题,我可以做到这一点)。我的问题是,应该有一种方法可以调用ScanFingerprint(),但当我搜索它时,该方法没有显示。

https://winscp.net/eng/docs/library_session_scanfingerprint#parameters

这就是我发现的,但该方法没有出现,知道如何做到这一点吗?

老实说,我还没有为此编写任何代码,因为我正在尝试找出该方法在哪里。但我有这个,我打算用它来设置SshHostKeyFingerprint属性

TransferOptions = new TransferOptions();
SessionOptions = new SessionOptions();
MySession = new Session();

SessionOptions.HostName = InterfaceConnection.Host;
SessionOptions.UserName = InterfaceConnection.UserID;
SessionOptions.Password = InterfaceConnection.Password;
SessionOptions.PortNumber = InterfaceConnection.Port;

if (string.Compare(protocol.ProtocolUsed, "FTP", true) == 0)                
    SessionOptions.Protocol = WinSCP.Protocol.Ftp;
else if (string.Compare(protocol.ProtocolUsed, "SFTP", true) == 0)
{
    SessionOptions.Protocol = WinSCP.Protocol.Sftp;                    
    SessionOptions.SshHostKeyFingerprint = protocol.FingerPrint;
    SessionOptions.SshPrivateKeyPath = "C:\\TestFiles\\SshKeys\\MyLocalSSHKey";
}
Run Code Online (Sandbox Code Playgroud)

c# ssh sftp winscp winscp-net

2
推荐指数
1
解决办法
7358
查看次数

使用WinSCP .NET程序集通过FTPS(安全)发送文件

使用FTPS(安全)使用WinSCP(.NET程序集)将文件发送到服务器需要什么?

我一直在查看他们的文档,并且在某些方面不太清楚,比如TlsHostCertificateFingerprintTlsClientCertificatePath.

我已经能够通过FTP和SFTP发送文件没有问题,但这一切都让我无法理解.

c# ftp ftps winscp winscp-net

2
推荐指数
1
解决办法
3524
查看次数

为什么我收到“SessionOptions.SshHostKeyFingerprint 未设置。” 即使剧本里有我的指纹

我正在使用 SFTP 将文件传输到远程服务器,但我不断收到

未设置 SessionOptions.SshHostKeyFingerprint。

我从 WinSCP WinSCP .NET Assembly and COM Library引用了此文档

我究竟做错了什么?请参阅下面的脚本:

try
{
    # Load WinSCP .NET assembly
    Add-Type -Path "WinSCPnet.dll"

    # Setup session options
    $sessionOptions = New-Object WinSCP.SessionOptions -Property @{
        Protocol = [WinSCP.Protocol]::Sftp
        HostName = "psftp-nesam.ms.com"
        UserName = "test"
        Password = "MSR4sssssnd5"
        SshHostKeyFingerprint = "ssh-rsa 1024 +3t0xkOMWqfA7IaH0itjW/w7FQN+EtVyLDMTXk+D300=
    ssh-rsa 1024 23:6f:82:11:ec:b1:1a:82:95:1b:ed:7e:96:24:d0:11"
    }

    $session = New-Object WinSCP.Session

    try
    {
        # Connect
        $session.Open($sessionOptions)

        # Upload files
        $transferOptions = New-Object WinSCP.TransferOptions
        $transferOptions.TransferMode = [WinSCP.TransferMode]::Binary

        $transferResult =
            $session.PutFiles("E:\CMBPAID\BPAID0224_122700.csv", "/NESAMSCARIMED", $False, $transferOptions) …
Run Code Online (Sandbox Code Playgroud)

ssh powershell sftp winscp winscp-net

2
推荐指数
1
解决办法
7791
查看次数

WinSCP SFTP - .tmp该进程无法访问该文件

我正在尝试使用以下代码上传文件,但在下面收到错误.

一些注意事项:我正在使用Windows 7.使用CrushFTP SFTP服务器,能够使用FileZilla和WinSCP客户端连接,但通过代码它是噩梦.

错误/例外:

mscorlib.dll中发生了'System.IO.IOException'类型的第一次机会异常

附加信息:进程无法访问文件'C:\ Users\xxxxxxx\AppData\Local\Temp\wscp0D64.036B20B7.tmp',因为它正由另一个进程使用.

我的连接代码如下

SessionOptions sessionOptions = new SessionOptions 
{ 
    Protocol = Protocol.Sftp, 
    HostName = "127.0.0.1", //hostname e.g. IP: 192.54.23.32, or mysftpsite.com 
    UserName = "xxxxxx", 
    Password = "yyyyyy", 
    PortNumber = zzzzz, //some number 
    SshHostKeyFingerprint = "ssh-rsa 1024 ::::04:85:3b:7a::::::::" 
}; 

using (Session session = new Session()) 
{ 
    session.Open(sessionOptions); //Attempts to connect to your sFtp site 
    //Get Ftp File 
    TransferOptions transferOptions = new TransferOptions(); 
    transferOptions.TransferMode = TransferMode.Binary; //The Transfer Mode - 
    // Automatic, Binary, or Ascii 
    transferOptions.FilePermissions …
Run Code Online (Sandbox Code Playgroud)

c# sftp winscp winscp-net

1
推荐指数
1
解决办法
1674
查看次数

使用 WinSCP .NET 程序集时 ...\WinSCP.exe 的版本与此程序集的版本不匹配

我正在使用一个名为WinSCPnet.dll. 该代码仅在我将其设置AssemblyFileVersion为与WinSCP.exe安装位置相同的版本时才有效。

我得到了这个例外:

C:\Program Files (x86l\WinSCP\WinSCP.exe (5.15.1.0) 的版本与此程序集的版本不匹配 C:\Users\burkarty\source\repos\UAReport3\UAReport3\bin\Debug\UAReport3.exe (0.0.0.0)。

如何独立于 WinSCP 版本运行我的代码?

我搜索了一个类似的问题,但没有对我有用。

.net c# winscp .net-assembly winscp-net

1
推荐指数
1
解决办法
1137
查看次数

标签 统计

winscp ×11

winscp-net ×11

c# ×8

sftp ×5

ssh ×4

.net ×2

ftp ×2

powershell ×2

public-key ×2

.net-assembly ×1

ftps ×1