Windows – 文件夹中的文件过期:x天后删除文件

我想在每个人都可以访问的 Windows共享驱动器中创建一个删除文件夹”.如果文件文件夹中存放超过X天,我希望自动删除文件.

但是,似乎我发现的所有方法都是这样做的,使用上次修改日期,上次访问时间或文件的创建日期.

我正在尝试将此文件夹设置为用户可以将文件放入其中以与某人共享.如果有人将文件复制或移动到这里,我希望时钟开始滴答作响.但是,除非有人实际修改文件,否则不会更新文件的上次修改日期和创建日期.上次访问时间过于频繁更新……似乎只需在Windows资源管理器中打开目录即可更新上次访问时间.

有人知道解决方案吗?我认为每天对文件的哈希进行编目,然后根据早于某个日期的哈希值来过期文件可能是一个解决方案……但是采取文件哈希可能非常耗时.

任何想法将不胜感激!

注意:
我已经在这里查看了很多答案…查看了文件服务器资源监视器,powershell脚本,批处理脚本等.他们仍然使用上次访问时间,上次修改时间或创建时间……其中,如上所述,不符合上述需求.

我们使用了powershell脚本和策略的组合.该策略指定用户必须在Drop_Zone共享内​​创建一个文件夹,然后将他们想要的任何文件复制到该文件夹​​中.当文件夹变为7天(使用CreationTime)时,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
  }
}

相关文章

Windows注册表操作基础代码 Windows下对注册表进行操作使用的...
黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的...
一个简单的Windows Socket可复用框架说起网络编程,无非是建...
Windows文件操作基础代码 Windows下对文件进行操作使用的一段...
Winpcap基础代码 使用Winpcap进行网络数据的截获和发送都需要...
使用vbs脚本进行批量编码转换 最近需要使用SourceInsight查看...