1

サーバーにリモートでログインしているユーザーを監視するvbsスクリプトがあります。「qwinsta」を使用してユーザー名を取得し、切断を待つだけでループできます。

ただし、qwinsta はリモート ユーザーのホスト名または IP アドレスを返しません。午前中ずっと検索しましたが、ユーザー名またはセッション ID に基づいて接続ユーザーの IP/ホストを取得するための cmd コマンドまたは wmi コマンドが見つかりません。

この情報を取得するための他のアイデアはありますか? IPアドレスを提供するこの外部ユーティリティを見つけました:http://home.fnal.gov/~jklemenc/tslistusers.htmlしかし、外部プログラムは使用したくありません。wmi またはその他の方法を使用して、自分のスクリプト内で何とかできる IP アドレスを取得していると思います。

netstat を使用し、ポート 3389 をフィルター処理して RDP セッションのみを取得し、その方法で IP を取得できることはわかっていますが、その時点からどの IP がどのユーザーに属しているかを知る方法はありません。

4

2 に答える 2

1

この情報は、(ほとんど) 文書化されていない API WinStationQueryInformationW を通じて公開されます。私の知る限り、WMI、コマンド ライン ユーティリティ、または COM オブジェクトを通じて公開されることはありません。

.NET 言語を使用できる場合は、Cassia ライブラリを使用して Win32 API 呼び出しを処理できます。ITerminalServicesSession.RemoteEndPoint を参照してください (ゲストとしてログインして、ここから最新のトランク ビルドをダウンロードしてください)。tlbexp と regasm を使用して VBScript から Cassia を使用できるはずですが、まだ試していません。

于 2012-04-25T13:17:47.853 に答える