如何知道在Windows上最近一次读取或访问文件的时间?

我需要确定一个特定的文件是否在最后的2天内被访问。

这在Windows Server 2008 R2上可能吗?

事实呢? 不,我不这么认为,除非审计ACL从父节点inheritance,或者直接在文件上设置“读文件”权限。 如果您启用文件系统审计,则可以查看安全日志以查找大多数人将要pipe理或转移到某种工具进行parsing的信息。

你也可以看看使用诸如Tripwire之类的东西来维护文件的完整性,如果这成为一个目标。

其实有一种方法,但是从Vista / 2008开始,它已经被默认禁用了,我只是validation了它在Win7 / 2008R2中默认是禁用的。

出于性能目的,位于HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ FileSystem中的registry设置NtfsDisableLastAccessUpdate现在默认为1。 如果将其更改为0,则NTFS将更新文件/文件夹的LastAccessTime属性。

您可以通过查看文件/文件夹的属性来查看此值,也可以使用PowerShell脚本来获取信息。 确保你先testing,但要确保性能不是太差。

另外NTFS不会总是更新信息。 根据这个http://msdn.microsoft.com/en-us/library/windows/desktop/ms724290(v=vs.85).aspx它可能需要长达一个小时。

正如@murisonc指出的那样,Windows上的NTFS卷可以跟踪最后一次访问时间,它们不是默认的,而且可以通过设置registry键来轻松启用。

您可以将其与文件完整性监控工具(如Verisys或Tripwire)结合使用 ,该工具可以提供自动化的警报和报告。

文件系统审计工具也可能是一个选项,尽pipe许多依赖于启用对象审计,这可能会导致性能下降。 其他一些依赖于文件系统filter驱动程序,但这些驱动程序可以有点flakey。

本指南应该诀窍来启用对文件的审核: http : //www.discoveryourpc.net/2010/01audaud-access-to-files-on-windows-7.html

它适用于Windows 7,但与2008年几乎相同。

你也可以为此使用组策略。 但正如你所说,你不是一个专业的pipe理员,这不会是你的方式。

您需要添加一个用户或组进行审计。 我build议添加在父文件夹中具有访问权限的相同组。

你必须通知用户你的审计。 在你的情况下“文件访问”。 如果您不通知他们审计可能是非法的。