实际上有一种方法,但是自 Vista/2008 以来它默认被禁用,我刚刚验证它在 Win7/2008R2 中默认被禁用。
出于性能目的,NtfsDisableLastAccessUpdate位于 中的注册表设置HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem现在默认为 1。如果您将其更改为 0,则 NTFS 将更新文件/文件夹的 LastAccessTime 属性。
您可以通过查看文件/文件夹的属性来查看此值,也可以使用 PowerShell 脚本提取信息。确保先进行测试,以确保性能不会太差。
此外,NTFS 不会总是立即更新信息。根据微软的说法:
NTFS 文件系统会将文件上次访问时间的更新延迟至上次访问后 1 小时。
在那个事实之后?不,我不这么认为,除非审计 ACL 是从父级继承的或直接在文件上设置的“读取文件”权限。如果您确实启用了文件系统审核,那么您可以查看安全日志以找到大多数人将通过管道或传输到某种工具进行解析的信息。
如果这成为目标,您还可以考虑使用 Tripwire 之类的东西来维护文件完整性。
正如@murisonc 指出的那样,Windows上的NTFS 卷可以跟踪上次访问时间,但默认情况下它们不会,并且可以通过设置注册表项轻松启用。
您可以将其与文件完整性监控工具(例如Verisys或Tripwire)结合使用,后者可以提供自动警报和报告。
文件系统审计工具也可能是一种选择,尽管许多工具依赖于启用对象审计,这会降低性能。其他一些则依赖文件系统过滤器驱动程序,但这些驱动程序可能有点古怪。