【问题标题】:Start GUI application in an RDP session from a different session in Windows从 Windows 中的不同会话启动 RDP 会话中的 GUI 应用程序
【发布时间】:2013-08-01 01:25:17
【问题描述】:

背景: 我要做的就是,使用 Java 在 Windows 节点(在云上生成)启动一个 GUI 应用程序(例如:mspaint),当我使用 RDP 连接时,我希望 GUI 应用程序已经存在。

问题: 通过 RDP 连接到远程 Windows 节点后,我看不到 GUI 应用程序已经存在。 我可以看到我的 Java 程序实际上已经启动了 GUI 应用程序,我可以在任务列表中看到它。它是在“服务”会话下启动的。当我在连接到 RDP 后运行同一个 Java 程序时,它在会话中启动了同一个应用程序,名称为“RDP-Tcp#0”

如果我使用的是传统的 RDP 客户端,我可以简单地选择我想要连接的会话,但在这里我无法控制,因为我使用的是名为 Guacamole 的 HTML5 RDP 客户端。

Java 程序使用 Runtime.getRuntime().exec() API 来运行一个用于启动 GUI 应用程序的 powershell 脚本。

有没有办法运行我的脚本,以便它在不同的会话中运行并显示 GUI?这在 Linux 中很简单,我们只需导出 DISPLAY 环境变量。

请帮忙

【问题讨论】:

  • 你运行什么来远程执行你的java代码?
  • 从帖子看来,Java 进程似乎不是远程启动的,而是从主机上的某个东西启动的。我对吗?如果 Windows 服务实际上正在启动您的 Java 应用程序,并且主机操作系统是 Windows 7 或更高版本,则无法让 UI 可见。不过,还有其他方法,如果我走在正确的轨道上,我可以解释一下……
  • @Poorkenny 是的,Java 程序驻留在主机上并在启动时被调用。操作系统是带有 SP1 的 Windows 2008 服务器 R2。请帮助解决可能的方法

标签: java windows session powershell rdp


【解决方案1】:

您无法在尚不存在的 RDP 会话中启动程序。要获得您想要的工作,您需要您的代码通过 RDP 实际登录,启动程序,然后在不注销的情况下断开会话。但是,由于空闲会话会占用系统资源,终端服务器管理员倾向于为空闲会话设置超时,之后用户会自动注销。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-02
    相关资源
    最近更新 更多