使用 Powershell 的非交互式远程命令

Noninteractive Remote Commands with Powershell

我正在开发一个脚本,它使用 ssh 连接到 windows 主机,运行 一个 powershell 命令,并解析输出。虽然我可以连接到主机和 运行 命令,但在我按下回车键之前,powershell 不会退出并且 return 控制权回到本地脚本。

目前,运行 的特定命令是 ssh HOSTNAME 'echo $(hostname)',ssh 服务器配置为将远程执行请求传递给 powershell -noninteractive -command CMD,其中 HOSTNAME 是windows 主机的名称和 CMD 是要成为 运行 的远程命令(在本例中为 echo $(hostname))。

最终目标是让调用远程 powershell 命令的脚本完全非交互地 运行,但这目前是不可能的,因为 powershell 命令不会非交互地 运行。

如何让 powershell 以非交互方式执行 运行 远程命令?

我已经解决了这个问题。虽然我还没有确定是什么导致了这个问题,但我至少可以通过将 stdin 重定向到启动 ssh 连接的那一侧的 /dev/null 来解决手头的问题。

$ ssh HOSTNAME "CMD" </dev/null

此解决方案根本不涉及 powershell,而是从连接的另一端处理症状。