2016-09-14 9 views
0

ターミナルサービスが有効になっているWindowsデバイスでアプリケーションが実行されているかどうかを調べる必要がある.netアプリケーションがあります.C#でどのように行うことができますか?.NETアプリケーションがターミナルサーバー上で実行されているかどうかを確認するにはどうすればよいですか?

EDIT:RDPサーバーは、Windows 7などの非サーバークラスのマシンにも取り込むことができます。また、サーバークラスのコンピューターは、ターミナルサービスを有効にせずにRDPにすることもできます。

+0

さて、現在のユーザーがRDP経由でログインしている場合は、チェックすることができます - しかし、あなたのアプリが動作しwouldntのサービスであれば – BugFinder

+0

[アプリケーションがRDPセッションで実行されているかどうかを確認する方法](http://stackoverflow.com/questions/295415/how-do-i-tell-if-my-application-is-running- in-an-rdp-session) –

+0

moでstの場合、単に 'true'を返す関数があります。 Fast User Switching(ほとんどのクライアントマシンで有効)は、TSを使用して実装されています。すべてのサーバーは、TSセッションの(限られた数)をサポートします。基本的に、ほぼすべてのマシンがTSを実行しています。 –

答えて

0

WMIWin32_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?

+0

私はそれを試した。ターミナルサーバーを有効にするたびに1:Windows 7の場合でも、1。 –

+0

Windows 7でもターミナルサーバーサービスを実行できます。これは、リモートデスクトップサービスと呼ばれます。 – Ari0nhh

関連する問題