Den-Sec/USBBlocker
GitHub: Den-Sec/USBBlocker
通过注册表切换 Windows USB 存储类驱动状态,在保留外设正常工作的前提下屏蔽 U 盘和手机等大容量存储设备的端点加固工具。
Stars: 0 | Forks: 0
# USBBlocker
在 Windows 上屏蔽 USB **大容量存储** —— U 盘、外接 HDD/SSD,以及处于 MTP/PTP 模式的智能手机 —— 同时保持鼠标、键盘、音频、网络摄像头、打印机和其它 USB 外设完全正常工作。
这是一个轻量级的端点加固 / 数据泄露防护控制工具:无需 agent,也无需安装驱动程序。它通过注册表切换 Windows 的 USB 存储类驱动。
[](LICENSE)

## 功能说明
它会设置三个存储类驱动的 `Start` 值:
| 驱动程序 | 涵盖范围 |
|--------|--------|
| `USBSTOR` | U 盘、标准外接 HDD/SSD |
| `UASPStor` | 高性能 USB 3.x 驱动器 (USB Attached SCSI) |
| `WpdBusEnum` | Windows 便携设备 (处于 MTP/PTP 模式的手机) |
- **屏蔽** → `Start = 4` (已禁用):新接入的存储设备会被拒绝。已挂载的驱动器在断开连接前仍可访问。
- **解除屏蔽** → `Start = 3` (按需):存储设备恢复正常工作。
USB 总线上的其它设备(输入设备、音频设备、摄像头、dongle)仍会继续工作 —— 它们使用的是不同的驱动程序。
## 用法说明
### 交互式(推荐)
双击 **`USBBlocker.bat`**。它会自动提权 (UAC) 并显示一个菜单:
```
[1] Show current status
[2] BLOCK USB storage
[3] UNBLOCK USB storage
[4] Open log
[0] Exit
```
### 命令行
在**已提权**的 PowerShell 中运行:
```
.\USBBlocker.ps1 -Status # show current driver state (no admin needed)
.\USBBlocker.ps1 -Block # disable USB storage
.\USBBlocker.ps1 -Unblock # re-enable USB storage
```
## 注意事项
- 相关操作会记录在脚本同目录下的 `usbblocker.log` 文件中。
- 更改对**新连接的**设备生效;已经挂载的驱动器在拔出前会保持原有状态。
- 若要在整个设备群中实施限制,建议使用 Group Policy / Intune —— 此工具主要用于单台机器的快速管理和实验测试。
## 许可证
[MIT](LICENSE) © Dennis Sepede ([Den-Sec](https://github.com/Den-Sec))
标签:AI合规, Awesome, IPv6, Libemu, PowerShell, 端点防护, 系统管理, 终端安全