fsrm仅对smb协议下的文件写入实时生效,无法拦截http/web层上传;需通过创建白名单文件组、主动屏蔽模板并绑定共享路径来实现图片类型限制。
windows server 的文件服务器资源管理器(fsrm)不能拦截 http/web 层上传(比如浏览器通过 iis 或 nginx 上传),它只对 smb 协议下的文件写入行为实时生效。也就是说,只有用户通过“网络共享”(\servershare)方式保存文件时,fsrm 才能按规则阻止或记录;web 应用(如 php、asp.net 上传接口)必须在应用层或 iis 层单独限制。
一、安装 FSRM 角色服务
若尚未启用该功能:
- 打开「服务器管理器」→「添加角色和功能」
- 路径选择:「基于角色或基于功能的安装」→ 选中当前服务器
- 在「功能」页中,展开「文件和存储服务」→ 勾选「文件服务器资源管理器」
- 完成向导,安装后无需重启,工具会出现在「工具」菜单中
二、创建白名单文件组(推荐方式)
比起屏蔽黑名单(如 .asp、.php),更安全的做法是只允许明确需要的类型,例如仅允许图片上传:
- 打开「文件服务器资源管理器」→ 左侧导航至「文件屏蔽管理」→「文件组」
- 右键「文件组」→「创建文件组」
- 名称填“仅允许图片”,描述可写“png/jpg/jpeg/gif/bmp”
- 在「文件筛选器」中逐条添加:*.png、*.jpg、*.jpeg、*.gif、*.bmp
- 点击「确定」保存
三、创建并应用文件屏蔽模板
模板决定是否阻断、是否发邮件、是否记日志:
- 在「文件屏蔽管理」→「文件屏蔽模板」右键 →「创建文件屏蔽模板」
- 名称:例如“仅允许图片-主动屏蔽”
- 屏蔽类型:选「主动屏蔽」(立即拒绝写入)
- 在「阻止的文件组」中,**不勾选任何默认组**;点击「添加」→ 选择刚才建的「仅允许图片」文件组
- 勾选「例外」选项卡 → 点击「添加」→ 输入 *(代表允许该组内所有文件)
- 这样就实现了“只放行图片,其余一律拦截”
四、将模板绑定到目标共享文件夹
确保该文件夹是 NTFS 格式且已设为网络共享:
- 回到「文件屏蔽管理」→「文件屏蔽」→ 右键 →「创建文件屏蔽」
- 「浏览」选择共享文件夹的本地路径(如 D:Uploads,不是 \servershare)
- 「文件屏蔽模板」下拉框中,选择上一步建好的模板
- 确认无误后点击「确定」
- 此时任何用户通过 SMB 写入非图片文件,会收到“访问被拒绝”提示,系统记录事件 ID 8215
注意:若需同时限制文件大小(如单个不超过 50MB),可在同一模板的「文件筛选器」中启用「限制文件和文件夹大小」并设为 52428800 字节。该机制与文件类型限制共存,无需额外脚本。











