如何使用批处理控制 USB 端口的电源

09s*_*enb 5 usb power batch windows-8 windows-8.1

如何使用批处理或命令行打开/关闭 USB 端口的电源?我正在使用 Windows 8 来执行此操作。有谁知道我能做什么?我有 4 个 USB 端口。

jdh*_*jdh 6

您将需要外部硬件,例如 USB 控制的继电器。Windows 本身不提供 API 或选项来允许关闭 USB 端口的电源引脚。这已在此之前回答并在此总结历史


har*_*ymc 5

问题分析

自 Vista 起,USB 设备即使在安全移除后仍保持通电状态。

Microsoft 文章 USB Port Remains Active for Disabled or Safely Removed USB Device 描述了这种新行为:

在 Windows XP 和 Windows Server 2003 中,当 USB 设备标记为已删除时,它所连接的 USB 集线器端口为禁用。当端口被禁用时,不会再向设备发送 USB 流量。

在 Windows Vista、Windows Server 2008、Windows 7 和 Windows Server 2008 R2 中,当 USB 设备被标记为已删除时,它所连接的 USB 集线器端口不会被禁用。

我相信这种行为是您试图改变的,以便关闭您已移除的设备。

解决方案

断电无法通过批处理脚本完成,但可以通过修改注册表将其恢复为 XP 行为,无论是作为所有 USB 设备的全局设置还是每个设备的全局设置。

要对所有枚举的 USB 设备全局应用变通方法
请将名为DisableOnSoftRemove1的 REG_DWORD 值添加到以下注册表子项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\usbhub\HubG

要将变通方法应用于特定设备
请将名为DisableOnSoftRemove1的 REG_DWORD 值添加到以下注册表子项:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\usbflags\vvvvpppprrrr
其中 vvvv 是设备的供应商 ID,pppp 是设备的产品 ID,rrrr 是设备的修订号(找到在设备管理器中)。