![如何使用批处理控制 USB 端口的电源](https://linux22.com/image/1397560/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%E6%89%B9%E5%A4%84%E7%90%86%E6%8E%A7%E5%88%B6%20USB%20%E7%AB%AF%E5%8F%A3%E7%9A%84%E7%94%B5%E6%BA%90.png)
如何使用批处理或命令行打开/关闭 USB 端口的电源?我使用 Windows 8 执行此操作。有人知道我能做什么吗?我有 4 个 USB 端口。
答案1
答案2
问题分析
从 Vista 开始,USB 设备即使被安全移除后仍保持通电状态。
微软文章 对于已禁用或安全移除的 USB 设备,USB 端口仍保持活动状态 描述这种新行为:
在 Windows XP 和 Windows Server 2003 中,当 USB 设备被标记为已移除时,它所连接的 USB 集线器端口将被禁用。当端口被禁用时,不会再向该设备发送任何 USB 流量。
在 Windows Vista、Windows Server 2008、Windows 7 和 Windows Server 2008 R2 中,当 USB 设备标记为“已删除”时,其连接的 USB 集线器端口不会被“禁用”。
我相信您想要改变这种行为,以便关闭已移除的设备。
解决方案
无法通过批处理脚本关闭电源,但可以通过修改注册表(作为所有 USB 设备的全局设置或每个设备的全局设置)将其返回到其 XP 行为。
对所有枚举的 USB 设备全局应用此解决方法,向以下注册表子项中添加一个名为 ,其值为 1 的
REG_DWORD 值: 。DisableOnSoftRemove
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\usbhub\HubG
对特定设备应用解决方法,
将一个名为 的 REG_DWORD 值(DisableOnSoftRemove
其值为 1)添加到以下注册表子项:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\usbflags\vvvvpppprrrr
其中 vvvv 是设备的供应商 ID,pppp 是设备的产品 ID,rrrr 是设备的修订号(在设备管理器中找到)。
答案3
有一个powershell 模块你可以使用它来禁用设备。
这样,您就可以阻止操作系统使用 USB 端口。但这不会切断这些端口的电源。因为那是一般来说不修改硬件就不可能实现。
仅关闭计算机可能切断电源。有些计算机有睡眠充电端口。即使计算机已关闭,这些端口也能提供电源(只要有电源连接或有足够电量的电池)。