我正在开发一个脚本,它使用ssh连接到Windows主机,运行powershell命令并解析输出。虽然我可以连接到主机并运行命令,但PowerShell将不会退出并将控制权返回到本地脚本,直到我按下回车键。
目前,正在运行的特定命令是ssh HOSTNAME 'echo $(hostname)'
,并且ssh服务器配置为将远程执行请求传递给powershell -noninteractive -command CMD
,其中HOSTNAME
是Windows主机的名称, CMD
是要运行的远程命令(在本例中为echo $(hostname)
)。
最终目标是让调用远程powershell命令的脚本完全非交互式运行,但目前这是不可能的,因为powershell命令不会以非交互方式运行。
如何让PowerShell以非交互方式运行远程命令?
答案 0 :(得分:0)
我已经解决了这个问题。虽然我还没有确定导致问题的原因,但至少可以通过将stdin
重定向到启动ssh连接的/dev/null
来解决问题。
$ ssh HOSTNAME "CMD" </dev/null
这个解决方案根本不涉及PowerShell,而是处理连接另一端的症状。