从命令行删除 USB 设备

从命令行删除 USB 设备

我正在为 Windows 7 构建一个备份脚本,我希望它执行的最后一项操作是安全地“移除”它正在备份到的 USB 驱动器。我认为将驱动器插入相同的USB 端口将始终保持相同的 DEV_ID(如果我错了,请纠正我)。使用命令行(或 PowerShell),我如何告诉 Windows 在没有用户输入的情况下自动安全地移除硬件?

仅作为占位符,其他可能有办法做到这一点的操作系统也很高兴知道。

答案1

移除驱动器过去对我帮助很大

答案2

除了 Uwe Sieber 的移除驱动器在另一个答案中提到,有很多实用程序可以实现这一点。 以下是一个小列表:

  • USB 磁盘弹出器主要是 GUI 实用程序,但也可以同样通过命令行使用,弹出程序正在运行的驱动器,或通过指定驱动器号/(部分)驱动器名称/挂载点等弹出任何驱动器。免费且开源。

    USB 磁盘弹出器

  • USB 安全移除它不是免费的,但它是一个增强版的磁盘删除实用程序,具有很多高级功能,当然包括命令行支持曾蒂莫是它的大哥,甚至 更多的 特征

    USB 安全移除

  • 微软自己的DevCon是设备管理器的命令行版本。除了 KB 页面提供的原始 Win2K/XP 时代版本外,还有来自各种 MS 来源的较新版本(32 位和 64 位),如本文所述在哪里可以找到 DevCon.exe文章。适用于 Windows 7(可能还有 Windows 8)的 DevCon.exe 可以在相应的Windows 驱动程序工具包 (WDK),正如此主题(其中还包含下载链接提取的可执行文件)。

    devcon status *devcon hwids *devcon findall =usb(为了更简洁的列表)应该会告诉您设备的硬件 ID。例如:

    USB\VID_0781&PID_7113\0001162825
    名称:USB 大容量存储设备
    驱动程序正在运行。

    然后,您可以尝试使用该设备进行删除devcon remove "USB\VID_0781&PID_7113"(允许使用 * 之类的通配符,但要小心,否则您最终可能会完全删除其他东西!)


有人问“是否有 DOS 提示符(Win7 中的 cmd.exe)命令来弹出拇指驱动器?“不幸的是,该帖子被关闭,因为它是该帖子的重复。然而,问题是关于在Windows 恢复控制台/系统恢复命令提示符,因此上述任何实用程序都不太可能有所帮助。在这种情况下,使用以下方法磁盘分区应该管用:

  1. 键入diskpart并等待 diskpart 提示符 ( DISKPART>)

  2. 类型list volume

  3. 仔细记下 USB 驱动器的卷号(使用列出的属性(如驱动器号、标签、类型和大小)获取帮助)

  4. 类型select volume <number>,其中<number>是上面提到的卷号

    磁盘分区

  5. 类型remove all dismount

  6. 键入exit以退出 Diskpart

现在您可以安全地移除您的 USB 驱动器而不必担心数据丢失。

答案3

回答问题...您不需要第三方的东西。

使用命令行(或 PowerShell),我如何告诉 Windows 无需用户输入即可自动安全地移除硬件?

运行此命令: RunDll32.exe shell32.dll,Control_RunDLL hotplug.dll 调出“安全删除硬件”对话框:

安全删除硬件对话框

答案4

找不到内部命令(感谢 MS),也没有一个脚本可以工作,删除字母是一种糟糕的弹出方式,交互方式也不酷,并且讨厌使用第三方工具。就我而言,我使用的是在我驱动器上已经 20 年的东西:内部微软 Windows 系统内部有助于案件:

sync -e x:
  • 刷新 USB 驱动器
  • 弹出 USB 驱动器
  • 保留信件
  • 不会扭曲 USB 树

如果发生锁定,请使用 Sysinternals处理或者进程表达式找出答案。

相关内容