2015-11-30 47 views
-2

我有一个文件共享需要数小时才能扫描。最近我被要求制作一个脚本,可以在一分钟内超过100个文件发生变化时发送邮件。我怎么去解决他的问题?可能是powershell,可能是任何可以启用这种“扫描”的东西。跟踪大文件共享上的最后修改日期

+1

“需要数小时才能扫描”。 “扫描”是什么意思,到目前为止您尝试了什么? –

+0

我一直在寻找有关此文件共享的权限组。运行文件共享中的每个文件夹并查找ACL需要花费数小时。 到目前为止,我一直都没有尝试过,因为我无法围绕如何跟踪由分钟改变的文件中的更改,当共享花费数小时来“扫描”时。 –

+0

如果您只对文件本身的更改感兴趣,则不需要每次都检索ACL –

回答

1

如果你想这对每运行5分钟,你可以检索与LastWriteTime属性值不到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 
} 

你可能发现FileSystemWatcher在您的情况下是更好的选择,尽管

+0

我会试试这个!谢谢 –

+0

我试图跟踪的文件共享超过4 TB的文件夹和文件。所以这可能不会在5分钟内完成,你能想到任何可能做到这一点的事情吗?也许FileSystemWatcher? –

+0

是的,审计 - 打开文件系统审计,每分钟解析安全日志文件,看看是否有超过100个文件被修改 –