这个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
)
答案 0 :(得分:1)
使用netstat
或qwinsta
或更合理的别名quser
或query 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似乎有效。但我会继续寻找。