Ip

如何獲取遠端桌面客戶端的 IP 地址?以及如何在 RDP 連接時觸發 shell 命令?

  • January 5, 2021

有沒有辦法在伺服器上使用 PowerShell(或其他方法)確定遠端桌面客戶端的 IP 地址?(我正在使用 Windows Server 2008 R2 x64)

編輯:我發現我可以使用 grep netstat 的標準輸出來檢索這些非常可行的資訊,那麼當客戶端連接時如何觸發腳本/shell 命令?

好吧,我發現task schedulerWindows 附帶的應用程序可配置為我可以執行批處理腳本的位置,當事件日誌中的事件生成時觸發。通過 UI,您可以選擇事件類型、事件源和事件 ID,在這種情況下,我使用了 4264(是的,它擷取了所有登錄類型)。在這裡,我使用了一個簡單的批處理腳本:

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 我’我最終會使用它來將某些事件寫入數據庫以進行基於網路的檢查。

此解決方案的唯一缺點是,如果您啟用了遠端桌面服務並且連接了多個人,則您無法在 netstat 輸出中區分它們。

在命令提示符下,您可以執行以下命令來獲取連接到 RDP(埠 3389)的遠端 IP 列表。

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

我確信這可以在 powershell 中編寫腳本(甚至只是一個普通的舊批處理文件)。如果你有興趣,我明天可以提供一個例子。

引用自:https://serverfault.com/questions/361565