【发布时间】:2009-08-05 08:22:08
【问题描述】:
在 Windows 中,如何以编程方式确定上次更改或删除文件的用户帐户?
我知道设置对象访问审计可能是一种选择,但如果我使用它,我就会遇到尝试将审计日志条目与特定文件匹配的问题......听起来很复杂而且很混乱!我想不出任何其他方法,那么有人对这种方法或任何替代方法有任何提示吗?
【问题讨论】:
标签: c# windows monitoring filesystems
在 Windows 中,如何以编程方式确定上次更改或删除文件的用户帐户?
我知道设置对象访问审计可能是一种选择,但如果我使用它,我就会遇到尝试将审计日志条目与特定文件匹配的问题......听起来很复杂而且很混乱!我想不出任何其他方法,那么有人对这种方法或任何替代方法有任何提示吗?
【问题讨论】:
标签: c# windows monitoring filesystems
你可以把你的问题分成两部分:
在这两个部分 1 中,写入日志是您提到的通过审计的内置功能。重新发明它会很困难,而且可能永远不会像内置功能那样好。
我会通过在这些文件上设置审核 ACL 来使用内置功能进行日志记录。然后,我将集中精力提供一个良好的界面来读取事件日志、过滤掉相关事件并以适合您的用户且相关的方式呈现它们。
【讨论】:
您总是可以创建一个file system filter。这可能有点矫枉过正,但这取决于您的目的。您可以在启动时加载它,它几乎位于每次文件访问的背后(病毒扫描程序通常使用它来扫描文件,因为它们被访问)。
只需要记录正在写入文件的应用程序的“所有者”。
【讨论】:
我知道的唯一方法是设置一个 FileSystemWatcher 并保持它运行。哦,如果它通过网络驱动器,它可能会随机断开连接,因此每隔几个小时强制断开/重新连接可能会很好,以确保它有新的连接。
【讨论】: