0

ソフトウェアには10個のユーザー名があり、ライセンスの問題により、10台の個別のマシン(10個の異なるIP)が必要です。複数のユーザーが同時にマシンにリモートアクセスできますが、マシンでこのプログラムを使用できるのは1人のユーザーのみです。さて、これが取引です。プログラムのインスタンスが現在マシン上で実行されているかどうかを示す単純なアプリケーション(単純なテーブル)をc#Visualで開発しています。それはうまくいきます。特定のマシンでプログラムのインスタンスを実行している列「owner」をテーブルに追加することを考えました。リモートでログインしてプロセスを開始した人のIPをどうにかして追跡できますか?各マシンにはアカウントが1つだけあります。

ありがとう。

4

1 に答える 1

1

必要なのは、それぞれのプロセスの所有者、つまり、タスクマネージャーやProcessExplorerを使用して表示できるユーザー名を表示することです。

プロセスの所有者を取得してWMIを使用するための1つのオプション。これは、例えば、この関連する質問で説明されています:

C#でプロセスの所有者を特定するにはどうすればよいですか?

さらにRDPセッションでユーザーを取得する場合は、次のようなコードを使用して、 Cassiaライブラリを確認することをお勧めします。

new TerminalServicesManager().CurrentSession.ClientName

クライアントのホスト名を取得するには、または

new TerminalServicesManager().CurrentSession.UserName 

ユーザー名を取得します。

于 2012-06-04T21:03:25.530 に答える