在Powershell中,如何使用rencissh dll中的scpclient下载方法?

时间:2014-07-24 17:51:11

标签: .net powershell ssh powershell-v2.0 scp

我试图使用"下载"来自Renci SSHNet Library(https://sshnet.codeplex.com/)的方法,在Powershell中。

以下是我脚本的一部分:

$scp = New-Object Renci.SShNet.ScpClient($ssh.ConnectionInfo)

$scp.Download("/path/to/file",(Get-Item '.\clef.gpg'))

$scp.Disconnect()

当我执行我的脚本时,我收到以下错误(sry,我的Posh是法语):

 Exception lors de l'appel de « Download » avec « 2 » argument(s) : « La référence     d'objet n'est pas définie à une instance d'un objet. »
Au niveau de C:\Users\olivier\Downloads\4_scripts\powershell\project1\Renci\test.ps1 : 62 Caractère : 18
+     $scp.Download <<<< ("/path/to/file",(Get-Item '.\clef.gpg') )
+ CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException

事实上,我不知道 ScpClient.Download 方法的第二个参数是什么。在文档中,我看到:

public void Download(
    string filename,
    FileInfo fileInfo
)

&& 34; fileInfo&#34;被描述为:

  

的fileInfo   键入:System.IO.FileInfo   本地文件信息。

我知道Get-Item命令返回一个[System.IO.FileInfo]对象,所以这就是我在我的代码中尝试过的原因,但它不起作用:(

任何人都知道如何正确使用此方法?

1 个答案:

答案 0 :(得分:4)

您错过了对ScpClient.Connect方法的调用 - $scp.Connect()

除此之外,你正在做的事情应该没问题,应该可行。