我正在开发一个程序,它不允许插入新的 USB HID,但允许插入相机、记忆棒等设备。我已经用简单的注册表项完成了我需要的工作。一切都运行良好,直到系统被锁定,因为出于某种原因,连接到系统的 HID 被卸载。
在这种情况下,我的 Windows 系统可以正常工作,但无法将任何 HID 连接到它。除了 USB 之外没有其他端口。我甚至无法使用系统恢复,因为它只能通过以下方式使用:
- 按住 SHIFT 键重新启动系统(无键盘)
- 连续 3 次无法启动 Windows(系统启动正常)
- 使用控制面板(我想,没有 HID 就无法到达那里)
那么,我有什么选择可以从这种情况恢复到正常工作的系统,而无需重新安装 Windows?也许在这种情况发生之前我可以做些什么?
此外(如问题标题所述)如果我可以修改注册表,它就能解决我的问题。
我不会成为设备的管理员,所以我更喜欢更简单、更简便的解决方案。但是我可以通过互联网连接到设备。TeamViewer 之类的东西对我来说很有用,但我不想支付许可证费用。
答案1
正如评论中所讨论的,这里有一些解决您的问题的建议:
- 使用可启动 USB 棒您可以使用装有预先准备好的软件的可启动 USB 来进入“恐慌”模式,这将允许使用 USB 设备,或自动重新配置机器
- 时间敏感的 PowerShell 脚本这将允许 USB 设备不再被阻止。使用 Windows 任务计划程序,您可以编写一个脚本,该脚本可以在晚上 8 点运行以启用 USB 设备,并在晚上 9 点再次禁用它们。这将使客户端每天有 1 小时的时间来访问机器以进行修复或重新配置。
- 远程访问。您可以使用 Windows 远程桌面连接连接到机器并重新配置设备(我们使用英特尔计算棒来做到这一点!)。但是,这需要您将端口 3389 从路由器转发到设备,并且您为该路由器设置了静态 IP(或动态 DNS)。如果此方法失败,您可以用 Python 创建一个客户端/服务器脚本,该脚本将为您提供一些远程控制,而不必担心端口转发。有一个很棒的教程介绍如何通过 @ 实现这一点thenewboston - Python 反向 Shell。这个概念是让客户端机器通过 TCP 连接联系服务器,服务器接受连接,然后您可以将系统命令转发给客户端。
答案2
我又有了另一个想法并决定实施。
因为我只阻止 HID 设备,所以插入记忆棒没有问题。我创建了一个后台进程,用于检查已安装的驱动器并查看其中是否有特定文件。如果文件内容正确,后台进程将修改注册表并解锁操作系统。