有没有办法通过 Windows 共享识别过去 [在此处插入时间范围] 内(对我来说是去年内)未访问过的文件?
我可以访问服务器,并且只能通过 Windows 共享访问文件,而不能从服务器本身访问。
该共享上有 70GB 的数据(NTFS)。它有数十万个文件,分布在数百个文件夹中。其中包括 MS Office 相关文件、较大的图像、程序等。
我主要是一名程序员,对“通过这样做来实现自己的目标”的答案很满意……但我希望 Windows(SBS Server 2003)中有一个机制、一个开源工具或一个廉价的商业产品。
显然,我非常希望该工具能以某种方式帮助我真正做到这一点。拥有一个用于手动处理文件的列表并不是理想的最终结果,但绝对是一个好的开始。
答案1
电源外壳:
$Cutoffdate = (Get-date).AddDays(-365)
Get-Childitem –recurse \\server\share\folder | where-object {$_.LastAccessTime –gt $Cutoffdate}
如果你想移动它们:
$Cutoffdate = (Get-date).AddDays(-365)
$Destdirectory = '\\server\share\oldfiles'
Get-Childitem –recurse \\server\share\folder | where-object {$_.LastAccessTime –gt $Cutoffdate} | foreach {$_.MoveTo($Destdirectory)}
我应该警告你,这不是一个完美的过程。Windows 不能很好地跟踪访问时间,你很可能会错过很多实际上很长时间没有访问的文件,但有人浏览了它们所在的目录(有时会更新访问时间,有时则不会)。