迈思工作室

Hi, 请登录

52好工具推荐:USB放行工具 v1.0.0

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

📷 软件截图

主界面

image.png

 

策略日志

image.png

 

💬 一些说明

这个工具目前主要针对的是 USB 存储设备管控,例如:

  • U 盘

  • USB 移动硬盘

  • 部分 USB 存储类设备

它不是杀毒软件,也不是完整的企业级 DLP。

目前目标很明确:

默认不让陌生 USB 存储设备随便使用,需要使用的设备由管理员明确授权。

所以暂时没有往“大而全”的方向堆功能。

先把:

默认禁用 / 白名单 / 只读 / 放行 / 日志 / 后台服务

这一套做好。

另外,卸载时程序会询问:

  • 恢复 USB 全局放行后卸载

  • 保留当前 USB 策略后卸载

这个选项请根据自己的情况选择。

如果选择了“保留当前 USB 策略”,卸载之后发现 U 盘依旧受限,不是 BUG,是你自己选的。

📦 下载

成品安装包

https://thebzk.lanzouu.com/iu93g41fihmd

✦ 最后

东西不算复杂,主要是工作里确实碰到了这个需求,所以自己撸了一个。

如果实际使用过程中遇到:

  • 某些 U 盘识别不到

  • VID / PID / 序列号识别异常

  • Windows 7 / 10 / 11 兼容问题

  • 只读策略存在漏网操作

  • 服务安装或启动异常

  • 驱动加载异常

可以直接在帖子下面反馈。

能稳定复现的问题,我再慢慢修。

源码仅供学习、研究以及合法的设备管理场景使用。
兄弟们如果做出了更好的版本,发帖时可以 @我,我也学习一下。


相关推荐

评论

  • 昵称 (必填)
  • 邮箱
  • 网址
二维码
评论