【发布时间】:2015-02-26 22:51:16
【问题描述】:
我正在开发一个脚本,它使用 ssh 连接到 Windows 主机、运行 powershell 命令并解析输出。虽然我可以连接到主机并运行命令,但在我按下回车键之前,powershell 不会退出并将控制权返回给本地脚本。
目前,正在运行的具体命令是ssh HOSTNAME 'echo $(hostname)',并且ssh服务器配置为将远程执行请求传递给powershell -noninteractive -command CMD,其中HOSTNAME是windows主机的名称,CMD是远程要运行的命令(在本例中为 echo $(hostname))。
最终目标是让调用远程 powershell 命令的脚本完全以非交互方式运行,但目前这是不可能的,因为 powershell 命令不会以非交互方式运行。
如何让 powershell 以非交互方式运行远程命令?
【问题讨论】:
-
您看到正确的响应了吗?请注意,您不应该在 powershell 的命令周围加上引号,
-command之后的唯一内容应该是您要运行的内容。 -
@Guvante 是的,我看到了正确的回复。我删除了引号,但这并没有改变它的行为。
-
我尝试在本地运行您的示例命令,它会立即打印并退出。您确定您调用 powershell 的方法没有导致问题吗?
-
@Guvante 不,我不确定。我正在使用问题中提到的标志通过 ssh 调用 powershell,这似乎是阅读手册页等的正确标志。我倾向于认为问题出在 powershell 标志中,但我无法证明或反驳这一点。
-
我也无法在本地重现该问题,但也许可以接受一种解决方法。尝试将其放在命令的末尾
;kill $PID
标签: powershell remote-server non-interactive