我需要确定某个文件在过去(比如说)两天内是否被访问过。
在 Windows Server 2008 R2 上可以实现这个吗?
答案1
事实发生之后?不,除非审计 ACL 是从父级继承的,或者直接在文件上设置“读取文件”权限,否则我不这么认为。如果您确实启用了文件系统审计,则可以查看安全日志以查找此信息,大多数人会将其传输或传输到某种工具进行解析。
如果这是目标的话,您还可以考虑使用像 Tripwire 这样的工具来维护文件完整性。
答案2
实际上有一种方法,但自 Vista/2008 以来它已默认禁用,我刚刚验证它在 Win7/2008R2 中默认被禁用。
出于性能考虑,注册表设置NtfsDisableLastAccessUpdate
现在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
默认为 1。如果您将其更改为 0,则 NTFS 将更新文件/文件夹的 LastAccessTime 属性。
您可以通过查看文件/文件夹的属性来查看此值,也可以使用 PowerShell 脚本提取信息。不过,请务必先进行测试,以确保性能影响不会太严重。
此外,NTFS 不会总是立即更新信息。据微软称:
NTFS 文件系统会将文件的最后访问时间的更新延迟最多 1 小时。
答案3
作为@murisonc 指出、Windows 上的 NTFS 卷能跟踪最后访问时间,它们默认情况下不这样做,并且可以通过设置注册表项轻松启用它。
您可以将其与文件完整性监控工具结合使用,例如威瑞系统公司或者绊线,可以提供自动警报和报告。
文件系统审计工具也可能是一种选择,尽管许多工具依赖于启用对象审计,这可能会降低性能。其他一些工具则依赖于文件系统过滤驱动程序,但这些驱动程序可能有点不稳定。
答案4
本指南应该可以帮你实现对文件的审核:http://www.discoveryourpc.net/2010/01/auditing-access-to-files-on-windows-7.html
它适用于 Windows 7,但与 2008 几乎相同。
您也可以使用组策略来实现这一点。但是正如您所说,您不是专业管理员,这不适合您。
您需要添加要审核的用户或组。我建议添加对父文件夹具有访问权限的同一组。
您必须告知用户您审核的内容。在您的案例中是“文件访问”。如果您不告知他们,审核可能是非法的。