Powershell 跟踪大型文件共享上的上次修改日期

Powershell 跟踪大型文件共享上的上次修改日期,powershell,Powershell,我有一个文件共享,扫描需要几个小时。最近,我被要求制作一个脚本,在一分钟内更改了100多个文件时可以发送邮件。我怎样才能了解他的情况?可以是powershell,也可以是任何可以启用这种“扫描”的文件。如果希望每5分钟运行一次,可以检索所有属性值小于5分钟的文件,然后按分钟对文件进行分组: $Threshold = (Get-Date).AddMinutes(-5) $FilesPerMinute = Get-ChildItem C:\folder\share -Recurse |Where-O

我有一个文件共享,扫描需要几个小时。最近,我被要求制作一个脚本,在一分钟内更改了100多个文件时可以发送邮件。我怎样才能了解他的情况?可以是powershell,也可以是任何可以启用这种“扫描”的文件。

如果希望每5分钟运行一次,可以检索所有属性值小于5分钟的文件,然后按分钟对文件进行分组:

$Threshold = (Get-Date).AddMinutes(-5)
$FilesPerMinute = Get-ChildItem C:\folder\share -Recurse |Where-Object { 
  $_.LastWriteTime -ge $Threshold 
} |Group-Object { $_.LastWriteTime.Minute } -NoElement
if($FilesPerMinute |Where {$_.Count -ge 100}){
    # alert
}


您可能会发现,在您的场景中,a是一个更好的选择,尽管“扫描需要几个小时”。“扫描”是什么意思?到目前为止您尝试了什么?我一直在寻找此文件共享上的权限组。运行文件共享上的每个文件夹并查找ACL需要几个小时。到目前为止,我什么也没试过,因为我不知道如何在共享需要数小时才能“扫描”的情况下,跟踪每分钟已更改的文件中的更改。如果您只对文件本身的更改感兴趣,则不必每次都检索ACL。我想我们在谈论彼此之间的问题。我只是想详细说明我所说的“扫描时间”是什么意思。我目前没有寻找ACL,这是以前的任务。我很好奇,如果在同一时间间隔内(比如一分钟左右)更改了100多个文件,我怎么能像每五分钟一样检查一次。我会试试这个!谢谢我正在尝试跟踪的文件共享超过4 TB的文件夹和文件。所以这可能不会在5分钟内完成,你能想出任何可以做到这一点的方法吗?可能是FileSystemWatcher?是的,审计-打开文件系统审计,每分钟分析一次安全日志文件,查看是否修改了100多个文件