Windows Server 2019 查询远程登录源 IP 地址(含 RDP 和网络登录)

发布于:2025-07-02 ⋅ 阅读:(27) ⋅ 点赞:(0)


🖥️

本文记录如何在 Windows Server 2019 上启用登录审计,并通过 PowerShell 脚本提取远程登录的用户名和源 IP 地址(RDP、远程共享、远程 PowerShell 等)。适合系统运维、主机安全、渗透测试场景下使用。


🧾 一、背景

在实际运维或安全审计中,我们经常需要查询谁登录过 Windows 服务器,特别是远程桌面(RDP)连接的来源 IP。Windows 会将这些信息记录在事件查看器的 Security 日志中,但需要我们手动开启审计策略,并编写查询脚本进行提取。


⚙️ 二、启用“登录”事件审计策略

在默认情况下,Windows 不一定会记录完整的登录日志。我们需要使用 auditpol 命令手动启用。

  1. 以管理员身份打开 命令提示符CMD

执行以下命令:


auditpol /set /subcategory:"登录" /success:enable /failure:enable

如果是英文系统,则将 "登录" 替换为 "Logon"

如不确定子类别名称,可执行:


auditpol /list /subcategory:"*"

查找系统中实际使用的名称。


🧪 三、使用 PowerShell 查询登录源 IP

执行以下 PowerShell 脚本,可以提取最近 200 条登录日志(事件 ID 4624)中为远程登录(LogonType 10 或 3)的记录:


Get-WinEvent -LogName Security -MaxEvents 200 |
Where-Object { $_.Id -eq 4624 } |
ForEach-Object {
    $data = $_.Properties
    $logonType = $data[8].Value
    $ip = $data[18].Value
    $user = $data[5].Value
    if ($logonType -eq 10 -or $logonType -eq 3) {
        [PSCustomObject]@{
            Time       = $_.TimeCreated
            User       = $user
            IPAddress  = $ip
            LogonType  = $logonType
        }
    }
} | Format-Table -AutoSize

📖 四、登录类型(LogonType)说明

LogonType 含义
2 本地交互式登录
3 网络登录(如 SMB/共享)
4 批处理(计划任务)
5 服务登录
7 解锁
10 远程桌面(RDP)
11 CachedInteractive

🧩 五、效果示例


Time User IPAddress LogonType ---- ---- --------- --------- 2025/06/27 20:56:15 Administrator 192.168.1.10 10 2025/06/27 21:12:03 guest 192.168.1.200 3


🛠️ 六、常见问题

1. auditpol 提示“参数错误”?

检查是否使用了正确的子类别名称。中文系统请使用 "登录",英文系统使用 "Logon"

  1. 日志中 IP 显示为空?

那是本地登录或使用 localhost 登录,不记录 IP 地址。建议筛选掉 ::1127.0.0.1


🧩 七、进阶建议

  • 可以将输出保存为 .csv.json 日志

  • 也可以定期调度脚本自动生成登录报表

  • 配合防火墙、入侵检测系统形成闭环审计


✅ 八、总结

通过本方法,你可以轻松:

  • 启用登录审计

  • 查询远程登录用户及其源 IP

  • 支持日志归档与审计合规要求

这在多用户管理服务器、远程维护、安全取证中非常实用。



网站公告

今日签到

点亮在社区的每一天
去签到