【问题标题】:netstat bat script recording all RDP connections记录所有 RDP 连接的 netstat bat 脚本
【发布时间】:2015-04-30 04:25:27
【问题描述】:

这个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
)

【问题讨论】:

    标签: batch-file netstat


    【解决方案1】:

    使用qwinstaquser 或它们更合理的别名query sessionquery user,而不是netstat

    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 或在该用户的 HKCU\Software\Microsoft\Windows\CurrentVersion\Run 中放入 REG_SZ 条目.请注意,如果用户断开连接并重新连接,它不会触发 - 只有当他从注销状态执行登录操作时。如果您想在重新连接到活动会话时记录事件,可以尝试添加计划任务以在 unlock event 上触发。

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

    【讨论】:

      猜你喜欢
      • 2015-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多