Windows
最快觸發實時反病毒掃描
我的問題是,在我的郵件系統(Windows Server 2012 R2 上基於文件的存檔)的每個備份中,備份受病毒感染的電子郵件附件文件時都會發生錯誤。這是由實時掃描(在我的趨勢科技防毒牆網路版的情況下)引起的,它在接收時沒有辨識出病毒並在文件訪問時將它們刪除——這會導致備份錯誤。
我的問題是:對
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 個帶有病毒,這個腳本只需要 345 毫秒。這對我來說很整潔。進一步的想法:
**看起來文件句柄在 powershell 退出時關閉,**導致數千個文件句柄
- 如何在每個文件打開/關閉後立即關閉句柄?
刪除 powershell 速度限制
優化
ForEach
-%
已經表現得比ForEach-Object
將程式碼移動到 C#
多執行緒