使用 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,而是从连接的另一端处理症状。
我正在开发一个脚本,它使用 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,而是从连接的另一端处理症状。