跳转到内容

Windows 认不出的 USB 设备

核验于 2 分钟阅读

读懂错误代码、找出端口属于哪个控制器,并在重装任何东西之前先解决电源管理问题。

测试环境Pro (26H2) / Server · 版本号 26300.9457 / 26100.33650 · x64
E1
版本号
26300.9457 / 26100.33650
版本
Pro (26H2) / Server
架构
x64
支持
文档(E1)
证据
E1官方文档
核验日期
2026-10-29
页面类型
排障

“USB 设备无法识别”是症状,四种常见原因按概率排列:

  1. 电源管理挂起了集线器或设备。
  2. 端口/控制器问题——Hub、前面板跳线,或共用控制器。
  3. 线材或接口——充电线、磨损的接口。
  4. 驱动——只有设备能枚举但没驱动时才成立。

从第 1 条开始。多数“USB 坏了”其实是电源设置。

终端窗口
Get-PnpDevice | Where-Object Status -ne 'OK' |
Select-Object FriendlyName,Status,Class,InstanceId,Problem,ProblemDescription
代码 含义 第一步
代码 10 无法启动 驱动或供电
代码 43 报告失败 复位设备、换线、换口
代码 28 未安装驱动 装厂商驱动
代码 45 当前未连接 重插、换口
代码 31 / 32 驱动加载失败 重装驱动

InstanceId 能看出拓扑:设备的 USB\VID_xxxx&PID_yyyy\...,控制器的 USB\ROOT_HUB30\...。

终端窗口
Get-CimInstance -Namespace root\wmi -ClassName MSPower_DeviceEnable |
Where-Object Enable -eq $true | Select-Object InstanceName,Enable

然后逐个在设备管理器 → 通用串行总线控制器 → 集线器 → 电源管理里取消“允许计算机关闭此设备以节约电源”——设备本身也要同样处理。

对负载下掉线的设备(移动 SSD、采集卡),这一条常常就能解决。

USB 口按控制器分组,控制器共享带宽。

终端窗口
Get-CimInstance Win32_USBController | Select-Object Name,DeviceID
Get-CimInstance Win32_USBControllerDevice |
ForEach-Object { [wmi]($_.Dependent) } |
Select-Object Name,DeviceID

在设备管理器 → 查看 → 依连接排序设备里展开控制器,插拔时看设备出现在哪个端口下。换到另一个控制器,是“两个设备互相打架”最便宜的解法。

  • 仅充电线没有数据线。能充手机,其他全废。
  • USB-C 转 USB-C 线在功率与数据规格上不同——一根 60W 充电线可能只有 USB 2.0 数据。
  • 磨损的接口接触不良;换同一台机器的另一个口试试。

只有在设备能够枚举之后(设备管理器里有名字,而不是“未知设备”):

  1. 记下硬件 ID:Get-PnpDevice -Status Error | Select-Object InstanceId。
  2. 针对该 ID 找厂商驱动。
  3. 卸载设备(有“删除驱动程序软件”就勾上),重启,安装。

E1。USB 枚举与电源管理有微软文档依据。实验室虚拟机只暴露虚拟 USB 设备,因此未复现控制器级故障。

来源