windows 中如何监控文件的打开操作,当一个文件被打开时,就能感知到?

2025 年 11 月 30 日
 skylord

这个问题比较好的实现方式是,通过 Minifilter 文件过滤驱动来监控,但是公司的电脑全都没有管理员权限,没办法安装运行驱动,导致这个方案没法实现。 除此之外,使用 ReadDirectoryChangesW 函数也没办法监控到,windows 好像不更新 last access 时间。还有个 Windows 事件跟踪 (ETW),这个需要管理员权限也不行。 有没有什么不需要管理员权限的监控方案?

4558 次点击
所在节点    Windows
27 条回复
skylord
2025 年 12 月 1 日
@all 感谢大家的建议,我会挨个试一下
capgosen
2025 年 12 月 1 日
找最近使用的项目,路径: %appdata%\Microsoft\Windows\Recent
dosmlp
2025 年 12 月 1 日
@samli12 当然是驱动啊
jmpcool
2025 年 12 月 1 日
ReadDirectoryChangesW 为啥监控不到文件打开? FILE_NOTIFY_CHANGE_LAST_ACCESS 这个标志不行吗?监控文件所在目录 过滤被监控文件就行啦,记住使用异步通知也就是完成端口那套 最稳定
skylord
2025 年 12 月 1 日
@jmpcool windows 默认不更新 last access 时间,开启更新需要管理员权限,这个 last access 时间更新也不及时
skylord
2025 年 12 月 1 日
@WuDiHaiTai 安装运行 Minifilter 驱动需要管理员权限
WuDiHaiTai
2025 年 12 月 1 日
@skylord #26 安装就是打申请咯,只要软件是可以用于商用的,没有版权和安全风险就可以给安装。至于运行就是我说的这个办法,只需要 IT 操作一次之后,之后每次使用都是管理员启动。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/1175906

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX