[英]Cant do cd via Posh-SSH on a Linux remote
我制作了一個使用 Posh-SSH 連接到 linux pc 的 PowerShell 腳本。 該腳本工作正常,但我發現由於某種原因我無法通過目錄進行 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
我已經閱讀了很多論壇、Posh-SSH 問題或文檔,但都沒有解決這個問題。
為什么會這樣? 謝謝
感謝帖子中的評論和一些測試,我發現了這一點:
當我運行這些命令時,cd 實際上正在執行它的工作,這就是為什么命令“cd Desktop; ls”顯示了來自桌面的正確信息。
我發現命令總是在 /root 中運行。 因此,“ls”每次都會顯示 /root 文件,即使我在不同的調用中預先運行了 cd 命令。
希望這些信息對未來的人有所幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.