netstat bat脚本记录所有RDP连接

时间:2015-02-27 12:42:20

标签: batch-file netstat

这个bat文件的目的是记录RDP连接并在用户登录时将它们记录到文件中,它可以正常但它记录了所有RDP连接,因此它不准确...是否可以运行登录时单个用户的netstat cmd?即只记录用户RDP会话,而不是所有RDP会话?

希望这是有道理的......

@echo off
for /f "delims=" %%i in ('netstat -anp TCP^| find "ESTABLISHED"^| find "3389"') do (
    echo %date% %time% %%i >> \\DC\Logs$\Logon\RDP.csv
)

1 个答案:

答案 0 :(得分:1)

使用netstatqwinsta或更合理的别名quserquery session,而不是query user

set "user=foo"
for /f "delims=" %%I in ('query user %user% ^| find "rdp"') do (
    >>\\DC\Logs$\Logon\RDP.csv echo(%%I
)

quser / query user已包含登录日期时间戳。)

或者,如果我误解了,并且您实际上只是在特定用户登录时询问如何触发bat文件,请将其放入该用户的%userprofile%\Start Menu\Programs\Startup或在其中添加REG_SZ条目用户的HKCU\Software\Microsoft\Windows\CurrentVersion\Run。请注意,如果用户断开连接并重新连接,则不会触发 - 只有当他从登出状态执行登录操作时才会触发。如果要在重新连接到活动会话时记录事件,可以尝试添加计划任务以在unlock event上触发。

如果您有多个用户远程登录时询问如何将远程登录用户与其IP地址配对,除了使用第三方之外,我还没有找到一种简单的方法工具。 TSListUsers似乎有效。但我会继续寻找。