0

我正在尝试使用 PowerShell 通过局域网将文件从 Windows 10 开发盒发送到 CentOS 7 服务器。

当我在 Windows 10 开发框中从 PowerShell 运行以下命令时,Putty 会打开,但会在要求输入密码之前关闭。然后测试文件 ( index.html) 不在 CentOS 7 服务器上的预期目标文件夹中。

Start-Process 'C:\Program Files (x86)\PuTTY\pscp.exe' -ArgumentList ("-scp -pw password C:\projects\temp\junk\index.html some_user_name@192.168.1.5:/home/some_user_name/")  

如何诊断导致此命令失败的问题?为了将文件从 devbox 成功传输到服务器,需要采取哪些具体步骤?

我已经仔细检查了一些明显的东西,比如文件路径、用户名和 IP。

上述命令源自@GrahamGold的这个建议。

4

1 回答 1

0

一般来说,您的命令没有任何问题。它应该可以工作(如果所有参数都是正确的)。


要诊断问题,首先在 Windows 命令行 ( cmd.exe) 上测试命令:

"C:\Program Files (x86)\PuTTY\pscp.exe" -scp -pw password C:\projects\temp\junk\index.html some_user_name@192.168.1.5:/home/some_user_name/

这样,输出被保留,您将看到哪里出了问题(如果有的话)。

下一步是使用调用运算符在 PowerShell 脚本中执行相同的操作&(尽管结果应该相同):

& "C:\Program Files (x86)\PuTTY\pscp.exe" -scp -pw password C:\projects\temp\junk\index.html some_user_name@192.168.1.5:/home/some_user_name/

如果这可行,那么如果你真的想要的话,是时候&用cmdlet 替换了。Start-Process但总的来说,我看不到这一点,除非您想异步运行传输。


虽然如果你想让你的命令可移植,你需要添加-hostkeyswitch

请参阅我对Using echo y as an automatic response to a pcp hostkey prompt 的回答

于 2017-06-07T19:00:57.210 回答