想象一下,如果任何用户都可以随意占用一台公用电脑的硬盘空间,那么硬盘的空间肯定不够用。所以,限制和管理用户使用的硬盘空间非常重要,无论是 NFS 服务、FTP 服务、用户账户,都需要对用户使用的硬盘容量进行控制,以避免对硬盘空间的滥用。Windows 10 中的磁盘配额(Disk Quotas)能够简单高效地实现这一功能。

1、磁盘配额概述

所谓磁盘配额 , 指计算机管理员可以对使用此计算机的每个用户所能使用的硬盘空间进行配额限制,即每个用户只能使用最大配额范围内的硬盘空间。例如某台安装Windows 10 的计算机注册有 3 个账户,Windows 分区有 50GB 可用空间,其中使用某个账户的用户在桌面存放了 40GB 的数据,这就造成其他两个账户的可用硬盘空间只有 10GB,使用上会造成不便。因此,磁盘配额功能适合用于 FTP、NFS 等文件服务器,其可以限制每个账户可写入的硬盘空间容量。

磁盘配额功能会监测账户在分区或卷上的硬盘空间使用情况,因此,每个账户对硬盘空间的利用都不会影响同一分区或卷上其他账户的磁盘配额。

磁盘配额具有如下特性:

  • 磁盘配额只支持 NTFS 文件系统,以分区或卷为单位向用户提供磁盘配额功能。
  • 可针对分区或卷以及特定账户设置磁盘配额,例如在 FTP 服务器中就需要对特定账户设置磁盘配额值,防止某些账户占用过多硬盘空间而影响其他账户的使用。
  • 磁盘配额针对每个账户的硬盘空间使用情况进行监控。此种监控方式使用文件或文件夹的权限配置实现。当某账户在 NTFS 分区上复制或存储一个新的文件时,它就拥有对这个文件的读写权限,这时磁盘配额就将此文件的大小计入该用户的磁盘配额空间。
  • 磁盘配额不支持 NTFS 文件系统的文件压缩功能,当磁盘配额统计磁盘使用情况时,都是统一按未压缩文件的大小来统计,而不管它实际占用了多少磁盘空间。这主要是因为使用压缩文件时,不同类型的文件类型有不同的压缩比,相同大小的两种文件压缩后的大小可能截然不同。
  • 启用磁盘配额后,分区在文件资源管理器中所显示的剩余空间,其实是指当前账户的磁盘配额范围内的剩余空间。
  • 磁盘配额针对每个分区或卷的硬盘空间使用情况进行独立监控,不管它们是否位于同一物理硬盘。
  • Windows 10 可以对磁盘配额进行检测,它可以扫描硬盘分区或卷,检测每个账户对硬盘空间的使用情况,并用不同的颜色标识出硬盘使用空间超过警告值和配额限制的账户,这样就便于用户对磁盘配额进行管理。

综上所述,磁盘配额提供了一种基于账户和分区或卷的文件存储管理功能,使得操作系统管理员可以方便、合理地分配存储资源,避免由于硬盘空间使用的失控而造成的操作系统崩溃,从而提高了操作系统的安全性和可用性。

2、磁盘配额管理

磁盘配额管理主要分为启动磁盘配额、禁用磁盘配额以及针对特定用户设置磁盘配额。

使用具有管理员身份的账户登录Windows 10,打开【文件资源管理器】,右键单击要启用或禁用磁盘配额的分区,在弹出菜单中选择【属性】。在【属性】对话框的【配额】选项卡中,单击【显示配额设置】即可打开磁盘配额界面,如下图所示。

Windows磁盘配额_Windows

启用磁盘配额时需要设置如下选项:

  • 启用配额管理:勾选【启用配额管理】即可启用磁盘配额,反之则关闭磁盘配额。
  • 拒绝将磁盘空间给超过配额限制的用户:此选项主要针对新注册的账户。勾选此复选框之后,只要新注册账户使用硬盘空间量超过其磁盘配额值,Windows 10 将会提示用户“磁盘空间不足”,并且要求用户删除或移动一些现存数据之后,才能将额外的数据写入分区或卷中。此外,也可以选择新账户不限制硬盘空间的使用。
  • 将磁盘空间限制为与将警告等级设为:该设置允许用户或应用程序使用硬盘空间的配额值,以及硬盘空间使用量接近配额值时的警告值。输入硬盘空间配额值和警告值,并在下拉列表中选择相应容量单位(例如 KB、MB、GB、TB、PB、EB)。
  • 用户超出配额限制时记录事件:启用配额之后,只要用户使用硬盘空间超过其磁盘配额值,该操作会被当作事件写入本地系统日志。用户可以使用【事件查看器】通过筛选磁盘事件类型来查看这些事件日志。
  • 用户超过警告等级时记录事件:启用配额之后,只要用户超过其警告等级值,该操作会被当作事件写入本地系统日志中。可以使用【事件查看器】通过筛选磁盘事件类型来查看这些事件日志。默认情况下,Windows 10 每隔一小时会将配额事件写入本地系统日志。

以上所述为磁盘配额全局配置选项,配置如上选项之后,还需要针对具体的账户设置硬盘空间使用上限。

单击【配额项】打开分区配额项设置界面,其中会显示所有磁盘配额账户,如下图所示。

Windows磁盘配额_windows_02

新建针对某账户的配额项只需在配额项设置界面中选择【配额】→【新建配额项】,然后在【选择用户】对话框中输入账户,单击【确定】进入【添加新配额项】设置界面,如下图所示,在其中设置磁盘配额值以及警告值,然后单击【确定】即可。

Windows磁盘配额_数据_03

要管理配额项,只需在磁盘配额项界面中选中要对其操作的配额项,然后单击右键并在菜单中选择相应的选项,即可对配额项进行删除、导入、导出、修改等操作。

启用或配置磁盘配额时,必须使用管理员账户或被委派了相关权限的账户。如果计算机已加入域网络,则只有 Domain Admins 组的成员才能进行磁盘配额配置操作。

按照以上要求设置相关选项之后,即可启用针对分区或卷的磁盘配额功能,此时分区的可用空间变成设置的磁盘配额值。当使用操作系统中的账户(Administrator 除外)向启用了磁盘配额的分区或卷写入数据时,写入的数据量只能在设置的磁盘配额范围值内。

当使用设置了磁盘配额项的账户向分区或卷写入数据时,操作系统会提示分区空间不足并显示该分区可用空间,如下图所示。

Windows磁盘配额_系统日志_04

除了图形工具外,还可以使用 fsutil quota modify 命令设置配额项,参数如下。

fsutil quota modify [Volume] [threshold] [limit] [username]
  • Volume :分区号(后跟冒号)。
  • Threshold :警告值。
  • Limit :最大硬盘使用空间。
  • Username :要限制的账户名称,如果计算机加入域网络,请在账户前指定账户环境。

例如对 Guest 账户在 E 盘设置最大使用空间为 5KB,警告值为 4KB,在以管理员身份运行的 PowerShell 或命令提示符中执行如下命令即可。

fsutil quota modify e: 5120 4096 guest

注意:使用 fsutil quota modify 命令新建或修改配额项时,请先确保已启用磁盘配额功能。