在远程服务器 (JSch) 上打开应用程序时显示交互式服务检测
Interactive Services Detection showing when opening an application on remote server (JSch)
我有一个 SSH 服务器 运行 并且需要关闭和打开一个 JavaFX 应用程序。使用 freeSSHd 和 JSch,我可以使用以下方式关闭应用程序:
sendCommand("wmic Path win32_process Where \"CommandLine Like '%Test.jar%'\" Call Terminate");
上面的命令可以毫无问题地关闭应用程序。
当我需要再次启动应用程序时,我正在尝试使用:
sendCommand("cmd /c cd C:/Test/dist && java -jar Test.jar");
发生的情况是来自交互式服务检测的 window 打开消息:"A program running on this computer is trying to display a message"。打开消息显示 JavaFX 应用程序。
我需要直接在远程计算机上打开 JavaFX 应用程序,而不显示它。这种行为正常吗?我可以使用 SSH (JSch) 实现吗?我知道 PSExec 是一个替代品,但它必须安装在每台客户端计算机上。
当我在 PuTTY 控制台中尝试命令时,也会发生同样的情况。
我认为它与"Session 0 Isolation"有关,但我不知道这是什么意思。
通常 (SSH) 服务器 运行 作为 Windows 服务。
Window 在单独的 Windows 会话中为 运行 提供服务(google 用于 "Session 0 isolation")。他们无法访问交互式(用户)Windows 会话。
并不是 "Interactive Services Detection" 阻止了应用程序。恰恰相反。 "Interactive Services Detection" 服务检测到服务正试图在不可见会话 0 上显示 GUI,并允许您在用户会话上复制 GUI。
另请注意,Windows 中可以有多个用户会话(多个登录用户)。 SSH 服务器如何知道在哪个用户会话上显示 GUI(即使它可以)?我猜想(虽然这只是一个推测)"Interactive Services Detection" 会在所有用户会话中显示提示,第一个接受提示的用户将赢得 GUI。
您可以在交互式 Windows 会话中 运行 SSH 服务器,而不是作为一项服务。但它有其局限性。实际上,FreeSSHD 在安装时会询问您是否要将其安装为服务。
尽管我完全不建议您使用 FreeSSHd。它有很多错误而且维护得不好。
总的来说,所有这些(运行通过 SSH 远程 Windows 上的 GUI 应用程序)对我来说不是一个好主意。
我有一个 SSH 服务器 运行 并且需要关闭和打开一个 JavaFX 应用程序。使用 freeSSHd 和 JSch,我可以使用以下方式关闭应用程序:
sendCommand("wmic Path win32_process Where \"CommandLine Like '%Test.jar%'\" Call Terminate");
上面的命令可以毫无问题地关闭应用程序。
当我需要再次启动应用程序时,我正在尝试使用:
sendCommand("cmd /c cd C:/Test/dist && java -jar Test.jar");
发生的情况是来自交互式服务检测的 window 打开消息:"A program running on this computer is trying to display a message"。打开消息显示 JavaFX 应用程序。
我需要直接在远程计算机上打开 JavaFX 应用程序,而不显示它。这种行为正常吗?我可以使用 SSH (JSch) 实现吗?我知道 PSExec 是一个替代品,但它必须安装在每台客户端计算机上。
当我在 PuTTY 控制台中尝试命令时,也会发生同样的情况。
我认为它与"Session 0 Isolation"有关,但我不知道这是什么意思。
通常 (SSH) 服务器 运行 作为 Windows 服务。
Window 在单独的 Windows 会话中为 运行 提供服务(google 用于 "Session 0 isolation")。他们无法访问交互式(用户)Windows 会话。
并不是 "Interactive Services Detection" 阻止了应用程序。恰恰相反。 "Interactive Services Detection" 服务检测到服务正试图在不可见会话 0 上显示 GUI,并允许您在用户会话上复制 GUI。
另请注意,Windows 中可以有多个用户会话(多个登录用户)。 SSH 服务器如何知道在哪个用户会话上显示 GUI(即使它可以)?我猜想(虽然这只是一个推测)"Interactive Services Detection" 会在所有用户会话中显示提示,第一个接受提示的用户将赢得 GUI。
您可以在交互式 Windows 会话中 运行 SSH 服务器,而不是作为一项服务。但它有其局限性。实际上,FreeSSHD 在安装时会询问您是否要将其安装为服务。
尽管我完全不建议您使用 FreeSSHd。它有很多错误而且维护得不好。
总的来说,所有这些(运行通过 SSH 远程 Windows 上的 GUI 应用程序)对我来说不是一个好主意。