Windows无内置访问频率统计功能,需通过启用审计、提取安全日志(ID 4663/5145)、按用户/路径/时间聚合分析三步实现SMB共享访问量化统计,并可辅以实时会话与文件连接状态查看。
windows 本身不提供开箱即用的“访问频率统计”功能,但可通过组合启用审计、收集日志、筛选分析三步,实现对 smb 共享访问频次的量化统计与行为分析。关键在于把“谁在什么时候访问了哪个文件/文件夹”这条信息持续记录下来,再按时间、用户、路径等维度聚合。
一、先开启共享访问审计(必须步骤)
没有审计,就无法生成访问事件,后续统计无从谈起。需同时配置系统策略和文件夹权限两层:
- 打开组策略编辑器(gpedit.msc),定位到:计算机配置 → Windows 设置 → 安全设置 → 高级审核策略配置 → 对象访问 → 文件系统,双击启用“成功”和“失败”审核
- 右键目标共享文件夹 → 属性 → 安全 → 高级 → 审核 → 添加主体(如 Everyone 或指定用户组)→ 勾选需统计的操作,例如“读取数据”“写入数据”“删除子文件夹及文件”
- 勾选“替换所有子对象的可审核项”,确保子目录和文件也受监控
- 执行 gpupdate /force 刷新策略
二、从安全日志中提取访问记录
审计启用后,每次访问都会在“Windows 日志 → 安全”中生成事件。重点关注以下两个 ID:
- 事件 ID 4663:精确到文件/文件夹级操作(如打开、读取、修改、删除),含账户名、进程名、对象路径、访问掩码
- 事件 ID 5145:网络共享级访问(如客户端通过 \\server\share 访问),含共享名、客户端 IP、源端口、访问类型(如 Read、Write)
可在事件查看器中右键“筛选当前日志”,输入 ID 并设置时间范围,导出为 .evtx 或 CSV 格式用于进一步处理。
三、按需统计访问频次(实用方法)
导出日志后,可用简单工具完成高频统计:
- 用 Excel 打开 CSV,对“账户名”“对象路径”“事件时间”列做透视表:按小时/天分组统计访问次数,或按用户+路径交叉计数
- 用 PowerShell 快速汇总(以过去24小时为例):
Get-WinEvent -FilterHashtable @{LogName='Security'; ID=4663; StartTime=(Get-Date).AddHours(-24)} | Group-Object -Property AccountName | Sort-Object Count -Descending - 若需长期趋势分析,可将日志导入免费工具如 Microsoft Log Parser Studio,运行 SQL 类查询(如 SELECT AccountName, COUNT(*) AS Hits FROM Security WHERE TimeGenerated > TO_TIMESTAMP('2026-06-03 00:00', 'yyyy-MM-dd HH:mm') GROUP BY AccountName ORDER BY Hits DESC)
四、补充实时连接状态参考
审计日志反映“已发生的访问”,而以下方式可看到“当前活跃连接”,辅助判断高频访问是否持续存在:
- 图形界面:计算机管理 → 系统工具 → 共享文件夹 → 会话(显示客户端名、用户名、空闲时间)
- 命令行:net session(管理员权限)或 Get-SmbSession(PowerShell)
- 查看被打开的文件:Get-SmbOpenFile,配合 Select-Object ClientComputerName, Path, LockCount 可发现哪些文件正被频繁读写

















