0

我编写了一个脚本来从 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(最新),我仍然得到同样的错误。

感谢任何帮助!我已经被这个卡住了很长一段时间了。

4

1 回答 1

0

“模块不是为在工作流中工作而编写的。目前不支持它们。”

-https://github.com/darkoperator/Posh-SSH/issues/173

不是我希望的答案,但现在我明白了。不过,仍然对任何变通方法持开放态度。

于 2021-11-03T20:39:45.753 回答