Windows-Server-2008
會話註銷:強制終止 Windows Terminal Server 2008 及更高版本上的應用程序
在純基於 Windows 的終端伺服器環境中,我正在尋找在會話註銷/超時後強制終止應用程序的方法。
使用 Citrix 服務,我可以使用 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Citrix\wfshell\TWI 列出所有應立即終止的應用程序。但如果沒有 Citrix,我根本不知道這是否可能。我希望為此目的還有另一個系統資料庫項?
背景資訊:一些行為不端的驅動程序導致會話在註銷後長時間保持打開狀態。如果我們可以註冊可以安全終止的應用程序,清理過程將更快地釋放會話資源。在我們的 Citrix 環境中,這產生了巨大的影響,因此我們也在為我們的純 Windows 環境尋找解決方案。
謝謝!
您可以通過將**AutoEndTasks**系統資料庫值設置為“ 1 ”(REG_SZ) 來解決此問題。
預設值為“ 0 ”:
程序不會自動結束。系統一直等到程序結束,如果程序花費的時間超過 HungAppTimeout 條目的值,則會出現“結束任務”對話框,說明應用程序無法響應“結束任務”請求。
您可以通過配置以下系統資料庫值來調整超時:
正如@Frankenstein 指出的那樣,AutoEndTasks可能會終止程序,而不是保存對打開文件的更改,有兩點值得考慮:
- 如果使用者正在註銷完整的桌面會話,而不保存他們的工作,這可能只是一個(潛在的)問題。對於無縫應用程序,使用者無法輕鬆觸發註銷過程,而無需實際關閉其遠端應用程序。
- 即使冒著使用者失去打開文件更改的風險(在我看來很小),也要考慮管理影響,即不終止不響應關閉信號的應用程序。需要重新啟動(例如修補)的計劃維護可能會被尚未保存其 Word 文件的使用者停止。管理員啟動的會話註銷可能無法完成等。
從管理的角度來看,我認為 AutoEndTasks 是必要的。如果您想為使用者爭取更多時間,您可以配置 WaitToKillAppTimeout 系統資料庫值。