應用程式可以檢測到它正在作為 RemoteApp 運行嗎?

應用程式可以檢測到它正在作為 RemoteApp 運行嗎?

背景資料

我最近在我的伺服器上安裝了 Microsoft Office 2013,以便使用 RemoteApp 部署到我的所有家用電腦。安裝後,當我嘗試執行這些程式時,出現錯誤:為了在安裝了終端服務的 PC 上執行 Office,您必須使用 Office 的大量授權版本。然後,我卸載了所有遠端桌面伺服器角色,而是透過停用允許清單來手動部署它們,並且它無論在本地運行還是部署為 RemoteApps 都運作良好。

什麼是允許列表?

在正常的 RemoteApp 部署中,有一個允許作為 RemoteApp 運行的應用程式列表,而配置該列表的唯一方法是使用終端服務伺服器角色。但是,可以進入 Windows 註冊表並停用該列表,以便任何人都可以透過知道其路徑來作為 RemoteApp 存取伺服器上的任何應用程序,而無需安裝終端服務伺服器角色。

這讓我對一些事情感到好奇…

我的問題

應用程式是否可以檢測到它以這種方式作為 RemoteApp 運行(禁用允許列表),如果是,則拒絕啟動,並且僅在本地伺服器桌面上運行時才啟動?

答案1

應用程式如何檢測它是否作為 RemoteApp 運行?

RemoteApp 會話透過在終端伺服器上啟動RDPINIT.EXE。因此應用程式可以檢查 RDPINIT.EXE 是否是父親行程

細節:

RDPINIT.EXE 實例在每個使用者 RemoteApp 會話的終端伺服器上執行。 RDPINIT.EXE 由 USERINIT.EXE 加載,作為 USERINIT.EXE 的 RemoteApp 特定實作。 RDPINIT.EXE 充當看門狗來啟動 RDPSHELL.EXE 並監視進程的啟動和關閉。 RDPSHELL.EXE 是用來取代 EXPLORER.EXE 來提供 RemoteApp 功能的 shell。 RDPINIT.EXE 監視 RDPSHELL.EXE 的進程生命週期,並在異常終止時重新啟動它。 RDPSHELL.EXE 將一組 Windows 事件掛鉤載入到工作階段中的每個使用者桌面。這些事件掛鉤允許 RDPSHELL.EXE 監視桌面上所有視窗的狀態。 ……

(引自科技網

相關內容