不能在Linux远程上通过Posh-SSH进行cd

时间:2018-06-08 13:58:45

标签: powershell ssh

我制作了一个PowerShell脚本,使用Posh-SSH连接到linux pc。该脚本工作正常,但我发现由于某种原因我无法浏览目录。

这是我将命令传递给Posh-SSH会话的方式:

$input = Read-Host "AutoSSH>"
$result = Invoke-SSHCommand -SessionId 0 -Command $input
$result.Output

制作脚本使得SessionId 0是当时唯一可能的活动,而$ result只是以比Posh-SHH更好的方式打印输出。我已经尝试过ls,服务命令(比如apache2 start / status),以及更多预期结果。

但是当我尝试cd时它不起作用。这就是我尝试以及我在测试中得到的结果:

Invoke-SSHCommand -SessionId 0 -Command "ls"

Host       : 192.168.xx.xxx
Output     : {asd.txt, Desktop, Documents, Downloads...}
ExitStatus : 0

Invoke-SSHCommand -SessionId 0 -Command "cd Desktop"

Host       : 192.168.xx.xxx
Output     : {}
ExitStatus : 0

Invoke-SSHCommand -SessionId 0 -Command "ls"

Host       : 192.168.xx.xxx
Output     : {asd.txt, Desktop, Documents, Downloads...}
ExitStatus : 0

我已经阅读了很多论坛,Posh-SSH问题或文档但没有回答这个问题。

为什么会这样?感谢

1 个答案:

答案 0 :(得分:0)

感谢帖子中的评论和一些测试我发现了这个:

当我运行命令时,cd实际上正在执行其工作,这就是命令“cd Desktop; ls”从桌面显示正确信息的原因。

我发现命令总是在/ root中运行。因此,“ls”每次都会显示/ root文件,即使我在另一个调用中预先运行cd命令。

希望此信息可以帮助将来的某个人!