WMI
Win32_TerminalServiceSetting
クラスにこの情報を問い合わせることができます。この例を参照してください:
using System.Management;
//...
//create a management scope object
ManagementScope scope = new ManagementScope("\\\\.\\ROOT\\CIMV2\\TerminalServices");
//create object query
ObjectQuery query = new ObjectQuery("SELECT * FROM Win32_TerminalServiceSetting");
//create object searcher
ManagementObjectSearcher searcher =
new ManagementObjectSearcher(scope, query);
//get a collection of WMI objects
ManagementObjectCollection queryCollection = searcher.Get();
//enumerate the collection.
foreach (ManagementObject m in queryCollection)
{
// access properties of the WMI object
Console.WriteLine("Terminal server enabled : {0}", m["AllowTSConnections"]);
}
参考文献:
MSDN: Win32_TerminalServiceSetting class
How Can I Determine Whether Terminal Services is Enabled on a Windows Server 2003 Computer?
さて、現在のユーザーがRDP経由でログインしている場合は、チェックすることができます - しかし、あなたのアプリが動作しwouldntのサービスであれば – BugFinder
[アプリケーションがRDPセッションで実行されているかどうかを確認する方法](http://stackoverflow.com/questions/295415/how-do-i-tell-if-my-application-is-running- in-an-rdp-session) –
moでstの場合、単に 'true'を返す関数があります。 Fast User Switching(ほとんどのクライアントマシンで有効)は、TSを使用して実装されています。すべてのサーバーは、TSセッションの(限られた数)をサポートします。基本的に、ほぼすべてのマシンがTSを実行しています。 –