Batch file 记录所有RDP连接的netstat bat脚本

Batch file 记录所有RDP连接的netstat bat脚本,batch-file,netstat,Batch File,Netstat,这个bat文件的目的是记录RDP连接,并在用户登录时将它们记录到一个文件中,它工作正常,但它记录了所有RDP连接,因此它不准确。。。是否可以在登录时为单个用户运行netstat cmd?i、 e.仅记录用户RDP会话,而不是所有RDP会话 希望这有意义 @echo off for /f "delims=" %%i in ('netstat -anp TCP^| find "ESTABLISHED"^| find "3389"') do ( echo %date% %time% %%i &

这个bat文件的目的是记录RDP连接,并在用户登录时将它们记录到一个文件中,它工作正常,但它记录了所有RDP连接,因此它不准确。。。是否可以在登录时为单个用户运行netstat cmd?i、 e.仅记录用户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
)

不要使用
netstat
,而是使用
qwinsta
qser
,或其更合理的别名
查询会话
查询用户

set "user=foo"
for /f "delims=" %%I in ('query user %user% ^| find "rdp"') do (
    >>\\DC\Logs$\Logon\RDP.csv echo(%%I
)
quser
/
查询用户
已包含登录日期时间戳。)

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

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