我制作了一个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问题或文档但没有回答这个问题。
为什么会这样?感谢
答案 0 :(得分:0)
感谢帖子中的评论和一些测试我发现了这个:
当我运行命令时,cd实际上正在执行其工作,这就是命令“cd Desktop; ls”从桌面显示正确信息的原因。
我发现命令总是在/ root中运行。因此,“ls”每次都会显示/ root文件,即使我在另一个调用中预先运行cd命令。
希望此信息可以帮助将来的某个人!