使用从PowerShell执行的pscp调试文件传输

时间:2017-06-07 18:39:04

标签: linux powershell putty scp pscp

我正在尝试使用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的这个建议。

1 个答案:

答案 0 :(得分: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,如果你真的想要的话。但总的来说,我没有看到这一点,除非你想异步运行传输。

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

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

相关问题