必须启用安全审计策略才能查看域用户登录日志;需配置“审核登录”策略启用成功与失败审计,执行gpupdate /force后,在事件查看器筛选4624、4625、4768、4771事件,结合powershell导出指定时段记录。

要直接在域控制器上查看所有域用户的登录日志,必须先确保安全审计已启用且日志未被覆盖,否则事件查看器里只会显示空白或极少量记录。
确认域控已开启登录审计策略
打开组策略管理控制台(gpmc.msc)→ 定位到“Default Domain Controllers Policy”或你自定义的DC专用GPO → 编辑 → 计算机配置 → 策略 → Windows 设置 → 安全设置 → 高级审核策略配置 → 审计策略 → 登录/注销 → 双击“审核登录”,勾选“成功”和“失败”。
这一步不可跳过。若未启用,系统根本不会生成4624、4625等关键事件,后续所有操作都查不到真实登录行为。
执行 gpupdate /force 强制刷新策略,等待约1分钟让策略生效。
在域控制器上打开安全日志并筛选登录事件
按 Win+R 输入 eventvwr.msc → 展开“Windows 日志” → 点击“安全”。
右键“安全” → “筛选当前日志” → 在“事件ID”框中输入 4624,4625,4768,4771(逗号分隔)→ 点击“确定”。
4624代表交互式或网络登录成功,4768是Kerberos TGT发放(更可靠反映域用户凭据验证),二者结合看才能排除服务账户或计划任务的干扰。
用PowerShell精准导出指定时间段的域用户登录记录
方法一:导出最近24小时所有4624事件(含用户名、源IP、登录类型)
wevtutil qe Security /q:"*[System[(EventID=4624) and TimeCreated[timediff(@SystemTime) C:\temp\login_24h.csv
方法二:只提取真实域用户(排除SYSTEM、ANONYMOUS LOGON、IIS APPPOOL等系统账户)
Get-WinEvent -FilterHashtable @{LogName='Security';ID=4624;StartTime=(Get-Date).AddHours(-24)} | Where-Object {$_.Properties[5].Value -match '@'} | Select-Object TimeCreated,@{n='User';e={$_.Properties[5].Value}},@{n='IP';e={$_.Properties[18].Value}},@{n='LogonType';e={$_.Properties[8].Value}} | Export-Csv C:\temp\domain_users_login.csv -NoTypeInformation
【注意】$_Properties[5]对应事件4624的“Account Name”,但仅当登录主体为UPN格式(如user@domain.com)时才可靠匹配域用户;若用sAMAccountName登录,需改用$_.Properties[1].Value(SubjectUserName)并配合Domain字段交叉验证。
排查常见空日志或数据缺失问题
第一步:检查安全日志是否已满并循环覆盖 → 运行 wevtutil gl Security | findstr "isFull maxSize",若返回 isFull=true,说明旧日志已被冲掉。
第二步:临时扩容 → 执行 wevtutil sl Security /ma:1073741824(设为1GB),避免下次排查时又丢失关键窗口期数据。
第三步:确认当前账户有读取安全日志权限 → 默认只有Administrators和Event Log Readers组成员可查看;普通域用户即使能打开事件查看器,点开“安全”日志也会提示“访问被拒绝”。











