我遇到的问题是,在我的邮件系统(Windows Server 2012 R2上的基于文件的归档)的每个备份中,在备份受病毒感染的电子邮件附件文件时发生错误。 这是由实时扫描(在我的TrendMicro防毒墙networking版的情况下)导致的,它不能在接收时识别病毒,并在文件访问时将其删除,从而导致备份错误。
我的问题是:什么是紧急和性能最友好的方式启动一个已知的目录D:\mail\已知的文件扩展名中的所有文件的反病毒扫描.$01
在我的研究中,我发现TrendMicro Office Scan没有手动的基于CLI的防病毒扫描。
我的想法是简单地阅读所有的文件,希望触发实时扫描。
好的,我知道了。 但是我不确定,如果这就是我们所能做到的一切。
只列出文件没有触发AV扫描,所以我们需要看看里面。 更具体的:我们必须打开文件。
这就是我想到的:在备份之前启动的PowerShell脚本,运行在给定的归档目录中。
$d=Get-ChildItem -Filter '*.$01' -Recurse; % {try{$_.OpenRead().Close()}catch{}} -InputObject $d -ErrorAction SilentlyContinue
在我的演示示例中,有44个目录,29000个文件,其中1488个*.$01文件检查,其中2个病毒,这个脚本只需要345ms。 这对我来说相当整洁。
更多的想法:
ForEach – %已经比ForEach-Object