リモートデスクトップクライアントのIPアドレスを取得するにはどうすればよいですか?また、RDP接続時にシェルコマンドをトリガーするにはどうすればよいですか?


23

サーバーでPowerShell(または他の方法)を使用してリモートデスクトップクライアントのIPアドレスを決定する方法はありますか?(Windows Server 2008 R2 x64は私が使用しているものです)

編集:netstatのstdoutをgrepして非常に実行可能なこの情報を取得できるので、クライアントが接続したときにスクリプト/シェルコマンドをトリガーするにはどうすればよいですか?


どのようなコンテキスト内で?このスクリプトは、ユーザー、管理者、または他のユーザーとして実行されますか?
ゾレダチェ

これはLAN、WAN、またはインターネット内ですか?
ザプト

私はRDPをインターネットに公開したままにしておくので、どのIPが私のIPで、何がIPではないのかがわかります。誰が実行されるのかわかりません。その情報を取得できるものは何でも推測します。
-chaz

私はいくつかの検索を行いましたが、この投稿(serverfault.com/questions/314386/listing-users-using-rdp)は必要なものに非常に近いようです。私はちょうどそれがターゲット/リターンとIPを作るためのPowerShellで堪能十分ではないよ
Skawt

そのイベントの種類と、それはまだ私にリモートIPを与えるものではありません提供した情報、それがイベントログに私を与えている最も近いものは「COMPUTER」です
チャズ

回答:


21

コマンドプロンプトから次のコマンドを実行して、RDP(ポート3389)に接続されているリモートIPのリストを取得できます。

netstat -n | find ":3389" | find "ESTABLISHED"

私はこれをpowershellでスクリプト化できることを確信しています(または単なる単なる古いバッチファイルでも)。もし興味があれば、明日例を提供できます。


非常に効果的に機能する前にこれを使用しましたが、RDPクライアントが接続したときにスクリプトをトリガーする方法を見つける必要があります。
chaz

12

申し分なく、task schedulerWindowsに付属のアプリケーションは、イベントログのイベントが生成されたときにトリガーされるバッチスクリプトを実行できる場所に構成できることがわかりました。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出力でそれらを区別できないことです。


1
実際には、すべてをまとめると非常にエレガントなソリューションになります。強化されたタスクスケジューラの機能についても知りませんでした。よくやった!
ジョン・ホーマー

古いバージョンのスケジューラについては、バッチファイルとevtmon.vbsスクリプトを使用
Scott R

5

スクリプトを作成する必要がない場合は、セキュリティイベントログでイベントID 4624を確認できます。次の行があります。

送信元ネットワークアドレス:192.168.xxx.xxx


4264はログイン用で、アクティブなドメインコントローラータイプのログインを記録するのに便利です。ログインしているアカウントは無関係であり、netstatのstdoutをgrepping / pipingすることで適切に取得できると思うので、接続RDPクライアントの現在のIPが必要です。RDP接続でシェルコマンド/スクリプト/プログラムの実行をトリガーする方法があった場合、それは素晴らしいことです。
chaz

実際には4624(typo)が正しいです。そのイベントIDに現れる複数のログオンタイプがあります。
chaz
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.