windows server 无内置文件上传违规检测+邮件告警功能,但可通过iis上传服务+powershell filesystemwatcher监控+send-mailmessage发信实现;需明确定义扩展名黑名单、大小超限、敏感词等违规规则,并配合ntfs权限与安全审核增强可靠性。
windows server 本身不内置“文件上传违规检测+邮件告警”的一体化功能,但可通过组合配置实现:利用 iis ftp 或 iis web 服务 接收上传 → 借助 文件系统监控(如 powershell 脚本 + filesystemwatcher) 实时识别违规文件(如扩展名、大小、内容特征)→ 触发 powershell send-mailmessage 发送告警邮件。整个流程无需第三方软件,全部基于 windows server 原生组件。
明确什么是“违规文件”
在动手前,先定义清楚规则,否则监控无从下手。常见违规维度包括:
- 扩展名黑名单:如 .exe、.bat、.ps1、.scr 等可执行类文件
- 文件大小超限:例如单文件超过 50MB
- 文件名含敏感词:如 “password”、“confidential”、“backup”
- 非预期目录写入:如上传到非公开上传目录(需结合 NTFS 权限隔离)
用 PowerShell 监控上传目录并触发邮件
这是最轻量、可控性最强的方案。以监控 FTP 根目录下的 Uploads 文件夹为例:
通过 SSH 隧道从 Android 设备在互联网上对 Windows PC 实现完整远程控制的设置与使用指南,适用于远程桌面访问、安全 RDP 等。
- 新建一个
Watch-UploadAlert.ps1脚本,内容包含:
– 创建FileSystemWatcher监听Created事件
– 对每个新文件检查扩展名、大小、名称
– 若命中任一违规条件,调用Send-MailMessage发送带详情的邮件(含文件路径、大小、触发时间、用户名) - 确保 SMTP 设置可用:可对接公司内部 Exchange、腾讯企业邮箱、或启用 Windows Server 自带的 SMTP 功能(IIS 6.0 兼容组件) 作为中继
- 用
Task Scheduler配置脚本开机自启并持续运行(推荐以高权限服务账户运行,避免交互式会话退出导致中断)
配合 NTFS 权限与审核策略增强可靠性
仅靠脚本监控存在窗口期(如文件秒传秒删)。建议叠加系统级防护:
- 在上传目录上启用 对象访问审核(组策略 → 计算机配置 → Windows 设置 → 安全设置 → 高级审核策略 → 对象访问 → 文件系统 → 启用“成功”)
- 对上传目录右键 → 属性 → 安全 → 高级 → 审核 → 添加 Everyone 的“创建文件/写入数据”审核项
- 这样即使脚本短暂离线,事件日志(
Security日志,事件 ID 4663)仍会记录所有写入行为,可配合Get-WinEvent定期扫描补位告警
替代方案:用 IIS 请求筛选 + 自定义错误页联动
如果走的是 HTTP 上传(如 ASP.NET 或 PHP 应用),更推荐前置拦截:
- 在 IIS 中启用 请求筛选(Request Filtering) → 拒绝特定扩展名(.exe 等)和最大允许内容长度(如 52428800 字节)
- 将 404.7(MIME 类型拒绝)或 404.13(请求内容长度超限)等错误重定向到一个自定义 ASPX/PHP 页面
- 该页面记录日志,并调用本地 PowerShell 或 C# SmtpClient 发送邮件(注意:需赋予 IIS 应用池标识发送邮件的权限)










