我想在每个人都可以访问的
Windows共享驱动器中创建一个“删除文件夹”.如果文件在文件夹中存放超过X天,我希望自动删除文件.
@H_502_15@
我们使用了powershell脚本和策略的组合.该策略指定用户必须在Drop_Zone共享内创建一个文件夹,然后将他们想要的任何文件复制到该文件夹中.当文件夹变为7天(使用CreationTime)时,powershell脚本将删除它.
但是,似乎我发现的所有方法都是这样做的,使用上次修改日期,上次访问时间或文件的创建日期.
我正在尝试将此文件夹设置为用户可以将文件放入其中以与某人共享.如果有人将文件复制或移动到这里,我希望时钟开始滴答作响.但是,除非有人实际修改了文件,否则不会更新文件的上次修改日期和创建日期.上次访问时间过于频繁更新……似乎只需在Windows资源管理器中打开目录即可更新上次访问时间.
有人知道解决方案吗?我认为每天对文件的哈希进行编目,然后根据早于某个日期的哈希值来过期文件可能是一个解决方案……但是采取文件哈希可能非常耗时.
任何想法将不胜感激!
注意:
我已经在这里查看了很多答案…查看了文件服务器资源监视器,powershell脚本,批处理脚本等.他们仍然使用上次访问时间,上次修改时间或创建时间……其中,如上所述,不符合上述需求.
我还在powershell脚本中添加了一些日志记录,这样我们就可以验证它的操作并打开卷影副本,只是为了保存完全无能为力.
这是没有所有日志记录的脚本.
$location = Get-ChildItem \\foo.bar\Drop_Zone $date = Get-Date foreach ($item in $location) { # Check to see if this is the readme folder if($item.PsIsContainer -and $item.Name -ne '_ReadMe') { $itemAge = ((Get-Date) - $item.CreationTime).Days if($itemAge -gt 7) { Remove-Item $item.FullName -recurse -force } } else { # must be a file # you can check age and delete based on that or just delete regardless # because they didn't follow the policy } }