Process Monitor監控目錄 - 監控檔案被哪個程式操作了

kendyhj9999發表於2017-12-07

利用之前Windows API知識,可以實現目錄監控的功能,實際上我也實現了,但是如文中所述,當指定目錄下操作過多時,會損失部分通知。多少算多呢,解壓一個eclipse開發環境的壓縮包到監控目錄下,相當於短時間內在目標資料夾中建立了數千個檔案,結果幾乎任何資訊都沒收到,所以,原本的程式在這種情況下侷限性還是很明顯的。

考慮到監控效能改進,還可以使用:

1.分析Change Journal的辦法,前提是系統開啟了這個功能;

2.寫Windows檔案驅動,據說是個痛苦的過程;

重新研究自己的需求,發現其實這種大量檔案操作情境,都可以在可控的情況下進行,只要能夠搭建一個環境,利用特定的工具監控這個過程就可以,我猜一定有這樣的工具。果然,找到了Process Monitor,這個工具非常強大,可以監控Windows系統的登錄檔、程式、檔案系統、網路等各方面的資訊,具體的用法不妨看看幫助,不復雜。

下面說說我如何用它來監控目錄。

工具啟動後會監控系統所有的活動,大部分資訊都不需要,所以需要設定過濾器,此工具的靈活性都體現於此。

預設標題

工具預設自帶了一些過濾條件,看到:主語+謂語+賓語,構成條件句,包含或者不包含,可以通過下拉選單隨意選擇內容進行組合,簡單而強大。

要監控某個目錄下的情況,首先,選擇只顯示檔案系統的資訊,

只監控檔案系統變化

然後,設定需要監控目錄的條件,

定義過濾條件

本來只要加上Path條件就可以了,但資訊還是太多,還需要進一步過濾,其中:

WriteFile:表示寫操作,依照檔案大小可能產生多條;

ReadFile:表示讀操作,一次讀會產生很多條;

SetAllocationInformationFile:改寫檔案時觸發;

SetEndOfFileInformationFile:改寫檔案時觸發;

SetRenameInformationFile:重新命名時觸發;

SetDispositionInformationFile:刪除檔案時觸發。

 

OK,有這些操作的排列組合,就可以監控某個目錄下檔案的建立、修改、刪除、訪問操作了。儲存日誌為檔案,以便日後分析。

相關文章