我正在尝试在 Powershell 中使用 Renci SSHNet 库 (https://sshnet.codeplex.com/) 中的“下载”方法。
这是我的脚本的一部分:
$scp = New-Object Renci.SShNet.ScpClient($ssh.ConnectionInfo)
$scp.Download("/path/to/file",(Get-Item '.\clef.gpg'))
$scp.Disconnect()
当我执行我的脚本时,我收到以下错误(对不起,我的 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.下载方法。在文档中,我看到:
public void Download(
string filename,
FileInfo fileInfo
)
并且“fileInfo”被描述为:
fileInfo Type: System.IO.FileInfo Local file information.
我知道
Get-Item
命令返回一个 [System.IO.FileInfo] 对象,所以这就是为什么我在我的代码中尝试了它,但它不起作用:(有人知道如何正确使用此方法吗?
最佳答案
您错过了对 ScpClient.Connect
的调用方法 - $scp.Connect()
.
除此之外,您正在做的事情应该没问题,并且应该可以工作。
关于.net - 在Powershell中,如何使用rencissh dll中的scpclient下载方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24940662/