管理更新序列号 (USN) 变更日志。 USN 变更日志用于持续性地记录对卷上的文件所做的所有更改。 当添加、删除和修改文件、目录和其他 NTFS 对象时,NTFS 将向 USN 变更日志中输入记录,每个 USN 变更日志对应于计算机上的一个卷。 每条记录都指明了变更的类型以及所更改的对象。 新记录将追加到流的末尾。
Syntax
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>
Parameters
Parameter | Description |
---|---|
createjournal | 创建 USN 变更日志。 |
m=<maxsize> |
指定 NTFS 为变更日志分配的最大大小(以字节为单位)。 |
a=<allocationdelta> |
指定添加到末尾并从变更日志开头移除的内存分配的大小(以字节为单位)。 |
<volumepath> |
指定驱动器号(后跟冒号)。 |
deletejournal | 删除或禁用活动的 USN 变更日志。 CAUTION: Deleting the change journal impacts the File Replication Service (FRS) and the Indexing Service, because it requires these services to perform a complete (and time-consuming) scan of the volume. 而这又会在重新扫描卷时,对 FRS SYSVOL 复制以及 DFS 备用链接之间的复制产生负面影响。 |
/d | 禁用活动 USN 变更日志,并在禁用变更日志时返回输入/输出 (I/O) 控件。 |
/n | 禁用活动 USN 变更日志,并仅在禁用变更日志后返回 I/O 控件。 |
enablerangetracking | 为卷启用 USN 写入范围跟踪。 |
c=<chunk-size> |
指定要在卷上跟踪的区块大小。 |
s=<file-size-threshold> |
指定范围跟踪的文件大小阈值。 |
enumdata | 枚举并列出两个指定边界之间的变更日志条目。 |
<fileref> |
指定要开始枚举的卷上文件中的序号位置。 |
<lowUSN> |
指定用于筛选所返回记录的 USN 值范围下限。 Only records whose last change journal USN is between or equal to the lowUSN and highUSN member values are returned. |
<highUSN> |
指定用于筛选所返回文件的 USN 值范围上限。 |
queryjournal | 查询卷的 USN 数据以收集有关当前变更日志、其记录及容量的信息。 |
readdata | 读取文件的 USN 数据。 |
<filename> |
Specifies the full path to the file, including the file name and extension For example: C:\documents\filename.txt. |
readjournal | 读取 USN 日志中的 USN 记录。 |
minver=<number> |
要返回的 USN_RECORD 的最低主要版本。 默认值 = 2。 |
maxver=<number> |
要返回的 USN_RECORD 的最高主要版本。 默认值 = 4。 |
startusn=<USN number> |
要开始读取 USN 日志的 USN。 默认值 = 0。 |
Remarks
程序可以查阅 USN 变更日志来确定对一组文件所做的所有修改。 USN 变更日志比检查时间戳或注册文件通知更高效。 索引服务、文件复制服务 (FRS)、远程安装服务 (RIS) 和远程存储已启用并使用 USN 变更日志。
If a change journal already exists on a volume, the createjournal parameter updates the change journal's maxsize and allocationdelta parameters. 此操作使你可以扩展活动日志保留的记录数,而无需将其禁用。
变更日志可能会增大到大于此目标值,但变更日志在下一个 NTFS 检查点处被截断为小于此值。 NTFS examines the change journal and trims it when its size exceeds the value of maxsize plus the value of allocationdelta. 在 NTFS 检查点处,操作系统会将记录写入 NTFS 日志文件,使 NTFS 能够确定从故障中恢复所需进行的处理。
The change journal can grow to more than the sum of the values of maxsize and allocationdelta before being trimmed.
删除或禁用活动变更日志非常耗时,因为系统必须访问主文件表 (MFT) 中的所有记录,并将最后一个 USN 属性设置为 0(零)。 此过程可能需要几分钟时间,并且可以在系统重启后继续(如果需要重启)。 在此过程中,变更日志不会被视为活动日志,也不会被禁用。 当系统禁用变更日志时,无法访问日志,并且所有日志操作都会返回错误。 禁用活动日志时,应格外小心,因为这会对使用该日志的其他应用程序产生负面影响。
Examples
若要在驱动器 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 文件夹中文件的 USN 数据,请键入:
fsutil usn readdata c:\temp\sample.txt
若要以特定起始 USN 读取 USN 日志,请键入:
fsutil usn readjournal startusn=0xF00