Powershell 无法在Linux远程服务器上通过Posh SSH制作cd

Powershell 无法在Linux远程服务器上通过Posh SSH制作cd,powershell,ssh,posh-ssh,Powershell,Ssh,Posh Ssh,我制作了一个PowerShell脚本,使用Posh SSH连接到linux pc。该脚本工作良好,但我发现我不能cd通过目录的某些原因 以下是我将命令传递给Posh SSH会话的方式: $input = Read-Host "AutoSSH>" $result = Invoke-SSHCommand -SessionId 0 -Command $input $result.Output 该脚本的创建使得SessionId 0是当时唯一可能处于活动状态的,并且$result只是以比Posh

我制作了一个PowerShell脚本,使用Posh SSH连接到linux pc。该脚本工作良好,但我发现我不能cd通过目录的某些原因

以下是我将命令传递给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
我已经读了很多论坛,时髦的SSH问题或者没有答案的文档


为什么会这样?感谢

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

当我运行这些命令时,cd实际上正在完成它的工作,这就是为什么命令“cd Desktop;ls”从桌面显示正确的信息

我发现这些命令总是在/root中运行。因此,“ls”每次都会显示/root文件,即使我在不同的调用中预运行了cd命令


希望这些信息对将来的人有所帮助

如果使用cd而不是ls,会发生什么?()通过“cd”命令,我得到的结果与文章中显示的结果相同。输出:{}ExitStatus:0。在所有测试中,我也会进行pwd,但如果使用
ls Desktop
会发生什么情况,则所有结果都是/root(不会移动到任何地方)?那
cd桌面呢;ls
?ls Desktop提供以下输出:输出:{mount-shared-folders.sh,restart vm tools.sh}ExitStatus:0 cd Desktop;ls:Output:{mount-shared-folders.sh,restart vm tools.sh}ExitStatus:0此结果很有趣。。。也许Posh SSH在命令执行后会重置为/root?我可以通过测试确认我可以在目录中导航并完美地执行操作,但当调用SSHCommand结束时,路径返回到/root。这就是为什么我总是得到相同的ls结果。