分享方式:


fsutil usn

管理更新序號 (USN) 變更日誌。 USN 變更日誌會提供對磁碟區上檔案所做之所有變更的持續記錄。 當新增、刪除和修改檔案、目錄和其他 NTFS 物件時,NTFS 會將記錄輸入 USN 變更日誌中,每個記錄對應電腦上的每個磁碟區。 每個記錄都會指出變更的類型與變更的物件。 新記錄會附加至資料流結尾。

語法

fsutil usn [createjournal] m=<maxsize> a=<allocationdelta> <volumepath>
fsutil usn [deletejournal] {/d | /n} <volumepath>
fsutil usn [enablerangetracking] <volumepath> [options]
fsutil usn [enumdata] <fileref> <lowUSN> <highUSN> <volumepath>
fsutil usn [queryjournal] <volumepath>
fsutil usn [readdata] <filename>
fsutil usn [readjournal] [c= <chunk-size> s=<file-size-threshold>] <volumepath>

參數

參數 描述
createjournal 建立 USN 變更日誌。
m=<maxsize> 指定 NTFS 為變更日誌配置的大小上限 (以位元組為單位)。
a=<allocationdelta> 指定新增至更改日誌結尾並從更改日誌開頭刪除的記憶體配置大小 (以位元組為單位)。
<volumepath> 指定磁碟機號 (後面跟著冒號)。
deletejournal 刪除或停用使用中的 USN 變更日誌。

注意:刪除變更日誌會影響檔案複寫服務 (FRS) 和索引服務,因為它需要這些服務對磁碟區執行完整 (且耗時) 的掃描。 這反過來又會對重新掃描磁碟區時,FRS SYSVOL 複製和 DFS 連結替代之間的複製產生負面影響。

/d 停用使用中的 USN 變更日誌,並在停用變更日誌時傳回輸入/輸出 (I/O) 控制。
/n 停用使用中的 USN 變更日誌,且只有在停用變更日誌之後,才會傳回 I/O 控制。
enablerangetracking 啟用磁碟區的 USN 寫入範圍追蹤。
c=<chunk-size> 指定要在磁碟區上追蹤的區塊大小。
s=<file-size-threshold> 指定範圍追蹤的檔案大小臨界值。
enumdata 列舉並列出兩個指定邊界之間的變更日誌項目。
<fileref> 指定列舉開始之磁碟區中檔案的序數位置。
<lowUSN> 指定用來篩選傳回之記錄的 USN 值範圍的下限。 只會傳回上次變更日誌 USN 介於或等於 lowUSNhighUSN 成員值的記錄。
<highUSN> 指定用來篩選傳回之檔案的 USN 值範圍的上限。
queryjournal 查詢磁碟區的 USN 資料,以收集目前變更日誌、其記錄及其磁碟區的相關資訊。
readdata 讀取檔案的 USN 資料。
<filename> 指定檔案的完整路徑,包括檔案名稱和副檔名,例如:C:\documents\filename.txt
readjournal 閱讀 USN 日誌中的 USN 記錄。
minver=<number> 要傳回 USN_RECORD 的最小主要版本。 預設值 = 2。
maxver=<number> 要傳回 USN_RECORD 的最大主要版本。 預設值 = 4。
startusn=<USN number> USN 開始閱讀 USN 日誌的來源。 預設值 = 0。

備註

  • 程式可以參閱 USN 變更日誌,以判斷對一組檔案所做的所有修改。 USN 變更日誌比檢查時間戳記或註冊檔案通知更有效率。 USN 變更日誌是由索引服務、檔案複寫服務 (FRS)、遠端安裝服務 (RIS) 和遠端儲存體所啟用及使用。

  • 如果磁碟區上已經有變更日誌,createjournal 參數會更新變更日誌的 maxsizeallocationdelta 參數。 這使您能夠擴充使用中日誌所維護的記錄數量,而不需要停用它。

  • 變更日誌可以擴充到大於這個目標值,但變更日誌會在下一個 NTFS 檢查點截斷為小於這個值。 NTFS 會檢查變更日誌,並在其大小超過 maxsize 的值加上 allocationdelta 的值時加以修剪。 在 NTFS 檢查點,作業系統會將記錄寫入 NTFS 記錄檔,讓 NTFS 能夠判斷從故障中復原所需的處理。

  • 變更日誌在修剪之前,可以擴充為超過 maxsizeallocationdelta 值的總和。

  • 刪除或停用使用中的變更日誌非常耗時,因為系統必須存取主要檔案資料表 (MFT) 中的所有記錄,並將最後一個 USN 屬性設定為 0 (零)。 此程序可能需要幾分鐘的時間,如果需要重新啟動,則可以在系統重新啟動之後繼續。 在此程序中,變更日誌不會被視為使用中,也不會停用。 當系統停用日誌時,無法存取日誌,而且所有日誌作業都會傳回錯誤。 停用使用中的日誌時應該格外小心,因為它會對使用日誌的其他應用程式造成負面影響。

範例

若要在磁碟機 C 上建立 USN 變更日誌,請輸入:

fsutil usn createjournal m=1000 a=100 c:

若要刪除磁碟機 C 上使用中的 USN 變更日誌,請輸入:

fsutil usn deletejournal /d c:

若要使用指定的區塊大小和檔案大小臨界值啟用範圍追蹤,請輸入:

fsutil usn enablerangetracking c=16384 s=67108864 C:

若要列舉並列出磁碟機 C 上兩個指定邊界之間的變更日誌項目,請輸入:

fsutil usn enumdata 1 0 1 c:

若要查詢磁碟機 C 上磁碟區的 USN 資料,請輸入:

fsutil usn queryjournal c:

若要讀取磁碟機 C 上 \Temp folder 中檔案的 USN 資料,請輸入:

fsutil usn readdata c:\temp\sample.txt

若要閱讀具有特定開頭 USN 的 USN 日誌,請輸入:

fsutil usn readjournal startusn=0xF00