Windows Server 2025 / 配置 FSRM 配额和文件屏蔽

文件服务器资源管理器(File Server Resource Manager,FSRM)可以限制文件夹使用的空间,并按文件名模式执行文件屏蔽。请把两项功能分别应用到新的 NTFS(New Technology File System,新技术文件系统)实验文件夹,以便区分配额耗尽、屏蔽规则和访问权限不足。

检查 NTFS 并准备专用测试文件夹

在 FS1 上创建新的空文件夹 D:\QuotaLab 和 D:\ScreenLab。如果文件夹或路径上的规则已经存在,请先确认用途,不要意外限制部门数据。FSRM 故障排除说明明确指出只支持 NTFS,不支持 ReFS(Resilient File System)。先执行文件系统查询;如果不是 NTFS,应停止此实验。

Get-Volume -DriveLetter D | Select-Object DriveLetter,FileSystem
Install-WindowsFeature FS-Resource-Manager -IncludeManagementTools
Get-Service SrmSvc

在 FS1 上以管理员权限运行 Windows PowerShell,安装角色服务和管理工具,检查安装是否成功以及 SrmSvc 是否正在运行。若有错误,应先解决,再配置规则。使用 fsrm.msc 打开控制台。安装 FSRM 不会自动授予文件夹写入权限,因此本地比较应使用已经有权写入两个文件夹的账户,并在应用限制前确认能够各保存一个小文件。

为一个文件夹设置硬配额

  1. 在“配额管理 → 配额模板”中选择“创建配额模板”,命名为 Lab-50MB。如果该名称已经存在,请检查用途,不要覆盖其他配置的模板。
  2. 将限制设为 50、单位设为 MB,并选择“硬配额”,用于阻止超限保存。“软配额”允许超限,主要用于监控。保存模板,只有准备测试通知时才配置相应阈值和通知。
  3. 通过 Lab-50MB 模板创建配额,路径指定为 D:\QuotaLab。选择在该路径上创建一条配额,不要对子文件夹自动应用配额;核对模板后保存。
  4. 在“配额管理 → 配额”中打开新条目,检查路径、50 MB、硬配额类型和初始用量。先移除用于验证写权限的小测试文件,不要删除其他数据。

此配额针对整个文件夹,与按用户计算的 NTFS 磁盘配额不同。创建配额说明区分单一路径配额与对子文件夹自动应用配额。配额模板定义限制、类型和通知。对真实数据设置硬限制前,应先评估现有用量、增长、保留需求和通知方式。

比较低于和超过配额时的写入结果

确认卷上有足够的实际可用空间,并检查 D:\QuotaLab 中不存在 first.bin 和 second.bin。WriteAllBytes 会覆盖同名文件,不能对有用数据使用这些测试名称。逐行执行,以分别观察结果。在 PowerShell 中,30MB 表示 30 MiB,即 31,457,280 字节;以下代码尝试保存两个相同大小的文件:

$sampleBytes = New-Object byte[] (30MB)
[System.IO.File]::WriteAllBytes('D:\QuotaLab\first.bin',$sampleBytes)
[System.IO.File]::WriteAllBytes('D:\QuotaLab\second.bin',$sampleBytes)

在 50 MB 硬配额下,第一个文件应保存成功,第二个应因总量超出限制而失败。将错误与 FSRM 中的配额用量和设置对应起来。如果两个都失败,检查路径、权限和实际磁盘空间;如果两个都成功,检查是否确实使用硬配额,以及路径是否恰好为 D:\QuotaLab。还应检查失败操作是否留下不完整的第二个文件。

进行对照时,只修改 D:\QuotaLab 这条配额的属性,保持同一容量限制并改为软配额,不要修改公用模板或把变更传播到其他配额。仅删除 first.bin、second.bin 及其残留的测试片段,再重复相同代码:此时即使总量超限,两个文件也应允许保存。保持测试规模有限,结束后移除测试文件并恢复硬配额。通知必须单独配置;发送邮件还需要正确设置 FSRM 常规选项和邮件服务器。

用无害扩展名比较文件屏蔽模式

  1. 在“文件屏蔽管理 → 文件组”中新建 LabBlocked,把 *.labblocked 加入包含的模式,确认没有排除规则抵消它。无需使用真实可执行文件或恶意软件。
  2. 在“文件屏蔽管理 → 文件屏蔽”中为 D:\ScreenLab 新建规则,并打开自定义属性。规则也会影响子文件夹,因此路径应限定在实验目录。
  3. 选择会阻止保存的主动模式(Active screening),勾选 LabBlocked。如果要检查通知,在“事件日志”选项卡中配置相应通知。保存属性并创建规则;此独立实验可以选择不额外创建模板。
  4. 分别将普通文本保存为 D:\ScreenLab 中的 normal.txt 和 sample.labblocked:前者应允许,后者应被阻止。在文件资源管理器中核对实际扩展名;通过记事本保存时选择“所有文件”,避免意外创建 sample.labblocked.txt。
  5. 只把此规则改为被动模式(Passive screening)后重复测试,sample.labblocked 应能保存。仅检查已配置的通知。再次测试主动模式前,先关闭并移除被动模式下保存的测试文件,恢复主动模式,再尝试新建同名文件,应被阻止。文件屏蔽不会自动删除已经保存的文件。

文件屏蔽说明区分主动和被动模式。文件组包含纳入和排除的名称模式,修改文件组可能影响其他引用它的规则。文件屏蔽检查名称,不像反恶意软件那样分析内容。改名后的扩展名,以及使用临时文件名的应用,需要另外评估。

诊断结果并只移除测试规则

保存失败本身不能证明权限有误。应检查确切路径、配额类型和用量、屏蔽及其例外、NTFS 权限、实际磁盘空间,以及测试时间对应的事件。在 FS1 上进行本地实验,也不能替代普通用户的 SMB(Server Message Block,服务器消息块)访问测试,后者还要满足共享权限。

完成后先核对路径,只移除 D:\QuotaLab 上的配额和 D:\ScreenLab 上的文件屏蔽。验证能够重新保存小文件和此前被阻止的测试文件名。只清理本实验创建的文件。删除 Lab-50MB 或 LabBlocked 前,确认没有其他配额或屏蔽规则引用它们;不要把实验变更应用到生产资源。