检查应用程序是否在终端服务下运行,而不是在远程桌面下运行
本文关键字:运行 程桌面 桌面 是否 应用程序 终端 服务 检查 | 更新日期: 2023-09-27 18:27:48
我有一个.NET应用程序,出于许可原因,我需要能够禁止在终端服务服务器上运行它。我知道SystemInformation
API用于确定程序是否在远程会话下运行(例如,如本问题中所述)。然而,API并没有区分在具有2个允许的远程桌面会话的普通服务器上运行的应用程序和可能具有500个会话的完整终端服务器
有没有一种简单的编程方法可以确定应用程序是否在完整的终端服务器上运行?
我可以接受这样一种假设,即超过2个允许的会话意味着一个完整的终端服务器,如果需要的话,我也可以接受p/Invoke。
一种方法是使用以下代码:
string s = System.Environment.GetEnvironmentVariable("SessionName");
如果s的值为"Console",则它可能正在终端服务中运行。另一方面,如果值类似于"RDP-Tcp#01",则它在远程桌面下运行。