【问题标题】:ReadDirectoryChangesW and determining which process caused the changeReadDirectoryChangesW 并确定哪个进程导致了更改
【发布时间】:2011-09-30 05:34:51
【问题描述】:

如何确定哪些进程正在更改哪些文件。

我确实找到了这个:

FileSystemWatcher: how to know which process made the change?

但我很好奇最近有什么变化吗?是否有可能使用ReadDirectoryChangesW 或其他任何方法来确定哪个进程正在对文件系统进行更改?我宁愿不必编写或使用内核驱动程序。

【问题讨论】:

    标签: winapi api filesystems readdirectorychangesw


    【解决方案1】:

    对您要跟踪的文件进行安全审核。该信息将记录在安全事件日志中。

    【讨论】:

    • 我可以创建一个顶级驱动器的安全审计,比如 C:\ 吗?
    • 谢谢 - 我最终使用了这个解决方案,而且效果很好。如果有人感兴趣,我可以分享一些 Python 代码。
    • @optionsanarchist 我对这段代码很感兴趣。请分享。
    【解决方案2】:

    虽然可以找出使用内核驱动程序更改文件的进程(例如,process monitor),但如果文件夹在网络上共享,识别进程总是会出现问题,并且另一台计算机上的进程通过网络修改文件。 在这种情况下,即使是内核驱动程序也会将网络共享进程识别为访问文件的进程,而不是另一台计算机上的进程。

    【讨论】:

    • 就我而言,我对网络文件夹不感兴趣,但我理解这会是个问题。
    【解决方案3】:

    我似乎还不能发表评论。我会对您在文件或路径上创建安全审计的 Python 代码感兴趣。如果它与系统安全事件日志混淆,那有点可惜,但你不能拥有一切! :-)

    到目前为止,我一直在更改时使用 GetForegroundWindow 以最终获取关联的进程。它只适用于用户发起的更改,但这主要是我感兴趣的。除了后台进程之外,唯一的小问题是有时会产生一个进程只是为了完成一项任务(如批处理文件)和当您想了解更多有关它的信息时(例如产生它的过程),它已经不存在了。不过,我想即使是安全审计也是一个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多