USB放行工具 v1.0.0|USB默认禁用 / 白名单只读 / 指定设备放行 / 策略日志
🔵 软件名称: USB放行工具
🟢 当前版本: v1.0.0
🔧 开发环境: C++ / Qt 5.15.2
💻 支持系统: Windows 7 / 10 / 11
👤 作者: Thebzk@52pojie
📌 软件介绍
工作中碰到一个比较实际的需求:
办公电脑默认不允许随便使用 U 盘、移动硬盘,但管理员指定的 USB 存储设备又需要正常使用。
Windows 自带策略虽然能禁 USB 存储,但用起来比较粗暴:
要么全部禁用,要么全部放开。
所以自己写了这个 USB放行工具。
软件的思路比较直接:
默认禁用 USB 存储 → 插入设备 → 识别 VID / PID / 序列号 → 管理员设置只读或放行
不做大而全的“安全中心”,主要解决一件事:
把 USB 存储设备的白名单、只读、放行和日志管理做得简单一点。
🚀 主要功能
01|USB 存储默认禁用
软件默认采用 USB 存储禁用策略。
未加入白名单的 U 盘、移动硬盘等 USB 存储设备,默认无法正常使用。
比较适合:
办公电脑
内网终端
资料电脑
公共电脑
运维终端
🔴 未授权设备:默认拒绝访问。
02|指定 USB 设备白名单
插入 USB 存储设备后,软件会自动读取设备信息,包括:
设备名称
设备类型
VID
PID
序列号
厂商信息
白名单不是简单按照盘符判断,而是根据:
VID + PID + 序列号
对指定设备进行绑定。
所以即使:
E:\ 变成 F:\
或者换了一个 USB 接口,只要还是原来的设备,授权策略不会因为盘符变化而失效。
🟢 认设备,不认盘符。
03|支持「只读」和「放行」
检测到 USB 存储设备后,可以直接右键设置权限。
只读
允许:
查看文件
打开文件
将文件复制到电脑
限制:
新建文件
修改文件
覆盖文件
删除文件
重命名文件
适合一些只允许读取资料、不允许往设备里写内容的场景。
放行
允许设备正常读写,包括:
读取
写入
修改
删除
复制
简单理解就是:
🟠 资料盘可以设为只读
🟢 可信 U 盘可以直接放行
🔴 陌生设备继续保持禁用
04|Windows 后台服务持续执行
USB 管控并不是靠管理界面一直开着。
程序安装后会注册后台服务:
UsbStorageGuardService
服务设置为 开机自动启动,负责持续执行 USB 存储策略。
所以:
关闭管理界面 ≠ USB 管控失效
即使不打开管理程序,后台服务仍然会按照已经配置好的策略运行。
05|USB 插拔自动刷新
程序会监听 USB 设备变化。
插入或拔出 USB 存储设备后,会自动刷新当前设备列表,同时后台也会定时重新检查状态。
正常使用时,不需要一直手动点刷新。
06|管理员密码保护
第一次打开管理端时,需要先设置管理员密码。
密码至少:
6 位
后续进入管理控制台需要验证密码。
同时支持:
修改管理员密码
卸载时验证管理员密码
防止普通用户随意进入管理端修改策略
07|策略操作日志
软件会记录主要管理操作,例如:
添加 USB 白名单
删除 USB 白名单
设置只读
设置放行
应用设备策略
全局放行
全局禁用
服务安装 / 更新
服务卸载
管理密码修改
策略执行异常
日志界面可以直接查看:
时间 / 来源 / 事件
方便后续查一下:
什么时候改了策略、改了什么、服务有没有异常。
08|日志导出 CSV
策略日志支持一键导出。
导出的文件会保存到当前用户桌面,例如:
USB策略日志_20260809_182200.csv
使用 UTF-8 编码,可以直接用 Excel 打开。
09|全局放行 / 全局禁用
除了单独管理某个 USB 设备,还保留了两个总开关。
全局放行
临时解除 USB 存储禁用策略,允许所有 USB 存储设备正常访问。
全局禁用
重新恢复默认 USB 存储禁用模式。
这两个操作执行前都会再次确认,防止手滑。
10|服务管理
设置页面可以直接进行:
安装 / 更新后台服务
启动后台服务
设置开机自动启动
卸载后台服务
查看当前服务状态
主界面也会直接显示当前状态,例如:
服务运行中 · 默认禁用
服务运行中 · 全局放行
服务已停止 · 策略保留
省得再跑到 services.msc 里面找。
🖥 软件界面
整个管理界面使用 Qt 5.15.2 编写。
目前主要分为:
主界面 | 策略日志 | 设置 | 关于
主界面主要显示:
当前 USB 存储设备
已绑定设备策略
设备授权、删除白名单等操作主要通过右键菜单完成。
整体尽量保持简单,没有往界面里塞太多按钮。
📝 使用方法
第一步:安装
使用 管理员权限 运行安装程序。
安装过程中会进行:
安装程序文件
注册 Windows 后台服务
设置服务开机自启动
尝试安装 USB 过滤驱动
应用默认 USB 存储禁用策略
第二步:设置管理密码
第一次进入管理端时,需要设置管理员密码。
密码至少 6 位。
以后进入管理端以及执行卸载操作时,需要进行密码验证。
第三步:插入需要授权的 USB 设备
插入 U 盘或移动硬盘。
在:
当前 USB 存储设备
列表中找到对应设备。
第四步:设置权限
右键目标设备,可以选择:
绑定为只读
或者:
绑定为放行
程序会保存设备的 VID、PID 和序列号,并重新应用当前 USB 策略。
第五步:管理白名单
已经授权的设备会出现在:
已绑定设备策略
列表中。
后续可以:
删除白名单
重新应用设备策略
💻 运行环境
支持系统:
Windows 7
Windows 10
Windows 11
Windows 7 建议安装当前可用的 SHA-2 支持更新。
开发 / 编译环境:
C++
CMake 3.21+
Visual Studio / MSVC C++ Build Tools
Qt 5.15.2 MSVC
Windows Driver Kit
Inno Setup
其中:
Windows Driver Kit 用于编译驱动。
Inno Setup 用于生成最终安装包。
⚠ 关于驱动签名
源码中包含 USB Minifilter 驱动:
UsbGuardFilter.sys
驱动用于执行 USB 存储访问控制。
这里提前说明一下:
Windows x64 正式环境下,内核驱动需要满足对应的驱动签名要求。
特别是 Windows 7,正式分发使用时需要处理好驱动签名问题。
源码完整提供,但正式环境使用驱动时,签名需要自行解决。
如果驱动没有成功安装,程序仍然保留兼容策略作为后备处理,并不是管理端关闭后整个策略就直接失效。
🔧 编译方法
先准备:
Visual Studio C++ Build Tools + Qt 5.15.2 MSVC
如果需要重新编译驱动,再安装 WDK。
准备驱动构建环境
复制代码 隐藏代码
powershell -ExecutionPolicy Bypass -File .\scripts\prepare-wdk.ps1编译项目
复制代码 隐藏代码.\scripts\build.ps1
生成 Release 安装包
复制代码 隐藏代码
.\scripts\build-release.ps1 -QtDir C:\Qt\5.15.2\msvc2019_64最终安装程序默认输出到:
复制代码 隐藏代码dist\Installer\UsbStorageGuardSetup.exe
📷 软件截图
主界面
策略日志
💬 一些说明
这个工具目前主要针对的是 USB 存储设备管控,例如:
U 盘
USB 移动硬盘
部分 USB 存储类设备
它不是杀毒软件,也不是完整的企业级 DLP。
目前目标很明确:
默认不让陌生 USB 存储设备随便使用,需要使用的设备由管理员明确授权。
所以暂时没有往“大而全”的方向堆功能。
先把:
默认禁用 / 白名单 / 只读 / 放行 / 日志 / 后台服务
这一套做好。
另外,卸载时程序会询问:
恢复 USB 全局放行后卸载
保留当前 USB 策略后卸载
这个选项请根据自己的情况选择。
⚠ 如果选择了“保留当前 USB 策略”,卸载之后发现 U 盘依旧受限,不是 BUG,是你自己选的。
📦 下载
成品安装包
https://thebzk.lanzouu.com/iu93g41fihmd
✦ 最后
东西不算复杂,主要是工作里确实碰到了这个需求,所以自己撸了一个。
如果实际使用过程中遇到:
某些 U 盘识别不到
VID / PID / 序列号识别异常
Windows 7 / 10 / 11 兼容问题
只读策略存在漏网操作
服务安装或启动异常
驱动加载异常
可以直接在帖子下面反馈。
能稳定复现的问题,我再慢慢修。
源码仅供学习、研究以及合法的设备管理场景使用。
兄弟们如果做出了更好的版本,发帖时可以 @我,我也学习一下。


