【发布时间】:2019-01-10 06:24:46
【问题描述】:
我有以下问题。我开发了一个将设置保存在首选项文件中的应用程序。在某个时间点,正在删除其中一个文件。无法从我的应用程序中删除此文件。
在Windows下如何知道是哪个进程删除了硬盘上的文件?
编辑: 问题很少出现。我正在寻找一个可以作为服务或其他东西运行的程序,这样我就可以为应用程序打一个补丁,如果有人删除文件并写入它已经完成的进程,我可以在运行时监控它。
【问题讨论】:
-
作为管理员,您可以启用文件访问审核并设置文件审核,或使用Process Monitor。
-
@eryksun 看到我的编辑。
-
或者,您可以通过保持文件打开而不共享删除权限来防止文件被删除。
-
我必须弄清楚是谁在试图删除它,这不是解决问题的方法,这是解决方法。
-
配置审计是侵入性最小的方法,因为内核已经被检测为支持审计事件的创建。其他选项基本上类似于 Process Monitor,使用特定过滤器运行以查找文件的访问权限。这要么需要一个挂钩到内核的驱动程序来监视给定的文件系统 I/O 请求 (IRP),要么需要某种系统范围的 API 挂钩(例如 Detours 之类的东西)。您可以查看API Monitor 的工作原理,看看是否可以集成。
标签: file window windows-10 delete-file