サーバーでPowerShell(または他の方法)を使用してリモートデスクトップクライアントのIPアドレスを決定する方法はありますか?(Windows Server 2008 R2 x64は私が使用しているものです)
編集:netstatのstdoutをgrepして非常に実行可能なこの情報を取得できるので、クライアントが接続したときにスクリプト/シェルコマンドをトリガーするにはどうすればよいですか?
サーバーでPowerShell(または他の方法)を使用してリモートデスクトップクライアントのIPアドレスを決定する方法はありますか?(Windows Server 2008 R2 x64は私が使用しているものです)
編集:netstatのstdoutをgrepして非常に実行可能なこの情報を取得できるので、クライアントが接続したときにスクリプト/シェルコマンドをトリガーするにはどうすればよいですか?
回答:
申し分なく、task scheduler
Windowsに付属のアプリケーションは、イベントログのイベントが生成されたときにトリガーされるバッチスクリプトを実行できる場所に構成できることがわかりました。UIを使用して、イベントタイプ、イベントソース、およびイベントIDを選択します。この場合、4264を使用します(すべてのログオンタイプをキャプチャする場合はyesです)。ここでは、代わりに単純なバッチスクリプトを使用しました。
SET logfile="rdp_ip_logs.log"
date /T>>%logfile%
time /T>>%logfile%
netstat -n | find ":3389" | find "ESTABLISHED">>%logfile%
また、.NETでのイベント書き込みをサブスクライブ/リッスンする方法に関する次の非常に便利な例を見つけました:http : //msdn.microsoft.com/en-us/library/bb552514(v=vs.90).aspx I '代わりにそれを使用して、Webベースの検査のために特定のイベントをデータベースに書き込みます。
このソリューションの唯一の欠点は、リモートデスクトップサービスを有効にして複数の人が接続している場合、netstat出力でそれらを区別できないことです。
スクリプトを作成する必要がない場合は、セキュリティイベントログでイベントID 4624を確認できます。次の行があります。
送信元ネットワークアドレス:192.168.xxx.xxx