我编写了一个脚本来从 SQL DB 中导出行,使用 PGP 对其进行加密,然后使用 POSH-SSH v2.3.0 传输它们。一切正常,直到我将其放入 PowerShell 工作流中以一次运行多个。
这个特定的行是问题:
Set-SFTPFile -SessionId $sftp.SessionId -LocalFile "$encrypted\$($file.Name).pgp" -RemotePath ".\path"
运行该行时,我收到以下错误。如果我注释掉该行,错误就会消失并且脚本运行良好(减去实际传输文件)。
Microsoft.PowerShell.Utility\Write-Error : Object reference not set to an instance of an object.
At StartExport:20 char:20
+
+ CategoryInfo : NotSpecified: (:) [Write-Error], RemoteException
+ FullyQualifiedErrorId : System.Management.Automation.RemoteException,Microsoft.PowerShell.Commands.WriteErrorCommand
+ PSComputerName : [localhost]
对我来说,POSH-SSH 似乎有些东西与 PowerShell 工作流不兼容。有没有人有这方面的经验?我会尝试升级到 v3.0 PSH-SSH,但它位于运行大量自动化的相当锁定的服务器上,并且需要我安装新的 .NET,这可能会破坏很多东西。
编辑:作为测试,我在笔记本电脑上安装了 POSH-SSH v 2.3.0,得到了同样的错误。然后我将 POSH-SSH 更新到版本 3.0.0(最新),我仍然得到同样的错误。
感谢任何帮助!我已经被这个卡住了很长一段时间了。