在Windows中通过注册表设置USB只能接入存储设备和打印机,可以通过以下方法实现:
手动注册表配置步骤
1. 启用USB存储设备
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR]
"Start"=dword:00000003
"Type"=dword:00000001
2. 启用打印机服务
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Spooler]
"Start"=dword:00000002
3. 禁用其他USB设备类GUID
创建禁用列表:
Windows Registry Editor Version 5.00
; 禁用HID设备(键盘、鼠标等)
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\DeviceInstall\Restrictions\DenyDeviceClasses]
"1"="{745a17a0-74d3-11d0-b6fe-00a0c90f57da}"
; 禁用便携设备
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\DeviceInstall\Restrictions\DenyDeviceClasses]
"2"="{eec5ad98-8080-425f-922a-dabf3de3f69a}"
; 禁用智能卡读卡器
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\DeviceInstall\Restrictions\DenyDeviceClasses]
"3"="{50dd5230-ba8a-11d1-bf5d-0000f805f530}"
; 启用限制策略
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\DeviceInstall\Restrictions]
"DenyDeviceClasses"=dword:00000001
4. PowerShell脚本方法
# 启用USB存储和打印机,禁用其他设备
$registryPath = "HKLM:\SYSTEM\\CurrentControlSet\\Services\\"
# 启用USB存储驱动
Set-ItemProperty -Path ($registryPath + "USBSTOR") -Name "Start" -Value 3
# 启用打印服务
Set-Service -Name Spooler -StartupType Automatic
# 定义要禁用的设备类GUID
$deniedClasses = @(
"{745a17a0-74d3-11d0-b6fe-00a0c90f57da}", # HID设备
"{eec5ad98-8080-425f-922a-dabf3de3f69a}", # WPD便携设备
"{50dd5230-ba8a-11d1-bf5d-0000f805f530}" # 智能电话
)
# 应用限制策略
foreach ($class in $deniedClasses) {
New-ItemProperty -Path "HKLM:\SOFTWARE\\Policies\\Microsoft\\Windows\\DeviceInstall\\Restrictions\\DenyDeviceClasses" `
-Name $class -Value "1" -Force | Out-Null
}
Write-Host "USB限制策略已应用"
C++实现示例
#include <windows.h>
#include <iostream>
bool SetUSBRestrictions() {
HKEY hKey;
DWORD dwDisposition;
// USB存储设置路径
const char* usbStorPath = "SYSTEM\\CurrentControlSet\\Services\\USBSTOR";
if (RegCreateKeyExA(HKEY_LOCAL_MACHINE, usbStorPath,
0, NULL, REG_OPTION_NON_VOLATILE,
KEY_WRITE, NULL, &hKey, &dwDisposition) == ERROR_SUCCESS) {
DWORD startValue = 3; // SERVICE_SYSTEM_START
RegSetValueExA(hKey, "Start", 0, REG_DWORD,
(BYTE*)&startValue, sizeof(startValue));
RegCloseKey(hKey);
}
return true;
}
⚠️重要注意事项
- 管理员权限:需要以管理员身份运行这些操作
- 系统影响:此设置会影响所有用户和设备
- 备份注册表:操作前建议备份注册表
- 重启生效:部分更改需要重启计算机才能生效
📋常用设备类GUID参考
| GUID | 设备类型 |
|---|---|
| {745a17a0-74d3…} | HID(键盘、鼠标) |
| {eec5ad98-8080…} | WPD便携设备 |
| {4d36e96c-e325…} | Modem |
| {4d36e972-e325…} | Network Adapter |
这样配置后,系统将只允许USB存储设备和打印机正常工作,其他类型的USB设备将被阻止安装和使用。
内容由零声教学AI助手提供,问题来源于学员提问




