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

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

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

答案1

您需要外部硬件,例如 USB 控制的继电器。Windows 本身不提供 API 或选项来允许关闭 USB 端口的电源引脚。这个问题已经得到解答之前在这里此处总结了历史

答案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 端口。但这不会切断这些端口的电源。因为那是一般来说不修改硬件就不可能实现。

仅关闭计算机可能切断电源。有些计算机有睡眠充电端口。即使计算机已关闭,这些端口也能提供电源(只要有电源连接或有足够电量的电池)。

相关内容