![如何获取连接到远程桌面的客户端的 ip 地址](https://linux22.com/image/629562/%E5%A6%82%E4%BD%95%E8%8E%B7%E5%8F%96%E8%BF%9E%E6%8E%A5%E5%88%B0%E8%BF%9C%E7%A8%8B%E6%A1%8C%E9%9D%A2%E7%9A%84%E5%AE%A2%E6%88%B7%E7%AB%AF%E7%9A%84%20ip%20%E5%9C%B0%E5%9D%80.png)
我有这样的环境:
我有一台 Windows 服务器,其中有许多客户端将通过远程桌面连接到该服务器。
对于每个客户端,它在连接到 rdesktiop 时都会创建一个新的会话。
我需要的是在文档和设置文件夹中创建一个相对于所连接客户端的文件,其中存储所连接客户端的 IP 地址。
使用netstat -n | find ":3389" | find "ESTABLISHED"
我可以获取所有已连接客户端的 IP 地址,但不是我需要的唯一 IP 地址。
有人能给我一个简单的解决方案吗?
谢谢!
答案1
StackOverflow 上有一个类似的问题,也许有帮助:
https://stackoverflow.com/questions/1510093/how-to-get-the-ip-address-of-the-remote-desktop-client
答案2
此 Powershell 代码片段在终端服务器上的 Powershell 会话中运行时应为您提供当前客户端的 IP 地址。
(Get-WinEvent -FilterHashtable @{LogName='Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational'; ID=1149; StartTime=(Get-Date).AddDays(-31);} | ForEach-Object {[PSCustomObject] @{User=$_.Properties[0].Value; IPAddress=$_.Properties[2].Value; TimeCreated=$_.TimeCreated;}} | Where-Object User -eq $env:USERNAME | Sort-Object -Property TimeCreated -Descending | Select-Object -First 1).IPAddress