2

ライセンス上の理由から、ターミナル サービス サーバー上での実行を禁止できるようにする必要がある .NET アプリケーションがあります。SystemInformationプログラムがリモート セッションで実行されているかどうかを判断するための API を認識しています (たとえば、この質問で詳しく説明されています)。ただし、その API は、許可された 2 つのリモート デスクトップ セッションを持つ通常のサーバーで実行されているアプリケーションと、500 のセッションが実行されている可能性がある本格的なターミナル サーバーとを区別しません。

アプリケーションがフル稼働のターミナル サーバーで実行されているかどうかをプログラムで簡単に判断する方法はありますか?

許可されたセッションが 2 つを超える場合は、ターミナル サーバーが完全にオンになっていることを意味し、それが必要な場合は P/Invoke を使用しても問題ありません。

4

1 に答える 1

1

1 つの方法は、以下のコードを使用することです。

    string s = System.Environment.GetEnvironmentVariable("SessionName");

s の値が「Console」の場合、ターミナル サービスで実行されている可能性があります。一方、値が「RDP-Tcp#01」のようなものであれば、リモートデスクトップで動作しています。

于 2013-08-16T01:55:21.290 に答える