ターミナルサービス:管理者として実行中にクライアント名を取得する
-
08-07-2019 - |
質問
通常の状況では、私のVB.NETアプリケーションはClientName環境変数をチェックして、ユーザーが接続しているワークステーションの名前を取得できます。
したがって、WorkstationX RDPがServerAにある場合:
- ComputerName = ServerA
- ClientName = WorkstationX
それは問題なく動作します。
アプリケーションを右クリックして「管理者として実行」を選択した場合、ClientName変数は設定されません。
「管理者として実行」でアプリケーションを起動した場合でも、ターミナルサーバーに接続されているクライアントのワークステーション名を簡単に取得する方法を知っている人はいますか?
解決
ターミナルサービスAPI はあなたの答え。 VB.NETアプリで使用して、特定のサーバー上のユーザーセッションをログオフし、それらのセッションに接続されているワークステーションの名前を取得します。私が持っているコードには多くのp-invokeがあり、かなり扱いにくいですが、必要に応じて投稿できます。
他のヒント
P / Invokeビジネスを自分で処理したくない場合は、 Cassia を使用できます、それはあなたのためにそれをラップします:
New Cassia.TerminalServicesManager().CurrentSession.ClientName
所属していません StackOverflow