我试图使用"下载"来自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]对象,所以这就是我在我的代码中尝试过的原因,但它不起作用:(
任何人都知道如何正确使用此方法?
答案 0 :(得分:4)
您错过了对ScpClient.Connect
方法的调用 - $scp.Connect()
。
除此之外,你正在做的事情应该没问题,应该可行。