首页/系统/Windows 运维速查/场景:夜间无人时段活动巡检

场景:夜间无人时段活动巡检

无人时段出现登录、服务注册、计划任务、共享访问就该问为什么:汇总四类事件拼出“夜里发生了什么”。

Windows 运维速查系统更新于 2026-10-13

夜间巡检要回答什么问题

夜间无人值守时段是最有价值也最容易被忽略的观测窗口:正常业务本该安静,此时出现的登录、服务安装、计划任务执行与共享访问,往往只有两类解释——已知的自动化运维,或者不该发生的事。巡检的目标不是「翻日志」,而是用几类事件拼出一条时间线,然后逐个归因:这是谁、从哪来、做了什么、后续有没有动作。

巡检动作顺序

  • 1. 划定窗口:先明确夜间时段(如 00:00 到 06:00)与涉及主机范围
  • 2. 核对审计前提:确认相关审核策略已开启,否则日志里根本不会有事件
  • 3. 汇总登录类:4624 交互与网络登录、4625 失败登录、4648 显式凭据使用
  • 4. 汇总系统变更类:7045 服务安装、计划任务创建与执行、驱动加载
  • 5. 汇总资源访问类:5140/5145 共享与文件访问(需开启对象访问审核)
  • 6. 与已知自动化比对:备份、补丁、同步、监控采集都属正常,建立白名单基线
  • 7. 对未知项深挖:账户、来源主机、进程与后续动作,评估是否升级为安全事件

常用示例

常用示例
# 定义夜间窗口
$start = (Get-Date).Date.AddHours(0); $end = (Get-Date).Date.AddHours(6)
# 登录与显式凭据:注意登录类型与来源地址
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4624,4625,4648; StartTime=$start; EndTime=$end} |
  Select-Object TimeCreated, Id, @{n='Account';e={$_.Properties[5].Value}}, @{n='Source';e={$_.Properties[18].Value}} |
  Sort-Object TimeCreated | Export-Csv D:\audit\night_logon.csv -Encoding UTF8 -NoTypeInformation
# 服务安装(新服务是重要的持久化信号)
Get-WinEvent -FilterHashtable @{LogName='System'; Id=7045; StartTime=$start} |
  Select-Object TimeCreated, @{n='Service';e={$_.Properties[0].Value}}, @{n='Path';e={$_.Properties[1].Value}}
# 计划任务相关通道
Get-WinEvent -FilterHashtable @{LogName='Microsoft-Windows-TaskScheduler/Operational'; StartTime=$start} |
  Select-Object TimeCreated, Id, Message -First 40
# 审核策略核对(哪些类别处于成功/失败审核)
auditpol /get /category:*

夜间重点关注的事件

事件来源日志关注点
4624安全登录成功;类型 2 交互、3 网络、10 远程桌面,关注非运维时段与陌生来源
4625安全登录失败;集中出现即爆破或口令错误排查密码的迹象
4648安全显式凭据登录;横向访问的典型信号,注意目标账户与来源主机
7045 / 7040系统服务安装与启动类型变更;非法持久化的常见手法
计划任务创建执行TaskScheduler/Operational无人时段新增任务需逐个确认来源
5140 / 5145安全共享与文件访问,需开启对象访问审核才会记录
4720 / 4732安全新建账号与加入特权组,必查
1102安全审计日志被清除,本身即为高危事件
先分清「已知自动化」与「未知活动」:备份、补丁分发、监控采集、同步任务通常在夜间运行,把它们的账户、来源与时段整理成白名单,巡检才有可读性,否则每天都是噪声。
只看成功登录会漏掉重要线索:失败登录(4625)集中出现在同一账户或来源时,说明有人在试密码;结合账号是否被锁定、是否有随后成功的登录,判断是否需要升级处置。

多机汇总与基线比对

多机汇总与基线比对
# 多台主机同一窗口汇总(需远程读取权限)
$hosts = 'SRV01','SRV02','APP01'
$start = (Get-Date).Date.AddHours(0)
Invoke-Command -ComputerName $hosts -ScriptBlock {
  param($s)
  Get-WinEvent -FilterHashtable @{LogName='System'; Id=7045,7040; StartTime=$s} -ErrorAction SilentlyContinue |
    Select-Object @{n='Host';e={$env:COMPUTERNAME}}, TimeCreated, Id, Message
} -ArgumentList $start | Export-Csv D:\audit\night_services.csv -Encoding UTF8 -NoTypeInformation
# 与白名单基线对比:找出白名单之外的条目
Import-Csv D:\audit\night_services.csv | Where-Object { $_.Message -notmatch '备份|Backup|Windows Update' }
巡检发现可疑活动时的第一动作是保全证据:导出原始 evtx 文件、记录时间线与主机范围,再按事件响应流程处置。不要先清日志或直接重装,证据丢失后无法判断影响范围与是否横向扩散。

易错点

  • 没核对审核策略就查日志:审核未开启时事件根本不产生,得出「夜间无事」的错误结论
  • 只看成功登录漏掉失败尝试:4625 集中出现正是爆破或口令试探的信号
  • 把已知自动化当异常上报:未建白名单导致噪声淹没真实线索,需先梳理运维时段与账户
  • 跨机器比对时间线却未统一时钟:时间不同步会让事件先后顺序判断错误
  • 发现问题先处置后留证:直接重装或清日志会丢失横向影响范围的关键证据

数据来源与参考

  • Microsoft Learn:4624 事件
  • Microsoft Learn:7045 事件

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌