2013-07-31 211 views
1

上下文: 我所要做的就是使用Java在Windows節點(生成在雲上)啓動GUI應用程序(例如:mspaint),當我使用RDP連接,我希望GUI應用程序已經在那裏。從Windows中的不同會話在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 env變量。

請幫忙

+0

你運行遠程執行你的java代碼有多麼的不可思議? – JPBlanc

+0

從帖子看來,Java進程似乎並不是從遠程啓動的,而是從主機上的東西啓動。我對嗎?如果Windows服務實際上啓動您的Java應用程序,並且主機操作系統爲Windows 7或更高版本,則無法顯示UI。還有其他方法,但是,如果我在正確的軌道上,我可以解釋... – Poorkenny

+0

@Poorkenny是的,Java程序駐留在主機上並在啓動時被調用。 OS是帶有SP1的Windows 2008服務器R2。請在可能的方式幫助 – Ram

回答

1

您不能在尚不存在的RDP會話中啓動程序。要獲得您想要的工作,您需要通過RDP實際登錄代碼,啓動程序,然後斷開會話而不註銷。但是,由於空閒會話會佔用系統資源,因此終端服務器管理員往往會爲空閒會話設置超時時間,之後用戶將自動註銷。