2012-06-29 20:01:16 +0000 2012-06-29 20:01:16 +0000
66
66

从命令行删除USB设备

我正在为 Windows 7 构建一个备份脚本,我希望它执行的最后一个操作是安全地 “删除 "正在备份的 USB 驱动器。在我的印象中,将硬盘一直插入same的USB端口将保持相同的DEV_ID(如果我错了,请纠正我)。通过命令行(或PowerShell),我怎样才能告诉Windows在不需要用户输入的情况下安全地自动删除硬件?

只是作为一个固定的位置,其他的操作系统可能有办法做到这一点,也是很好的了解。

答案 (6)

67
67
67
2012-10-12 01:14:18 +0000

除了Uwe Sieber的 RemoveDrive 在另一个答案中提到的,还有一大堆实用程序可以完成这个任务。以下是一个小的列表。


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

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

  1. 输入list volume

  2. 仔细记下U盘的卷号(使用列出的属性,如驱动器的字母、标签、类型和大小以获得帮助)

  3. 输入select volume <number>,其中<number>是上面提到的卷号

  4. 输入remove all dismount

  5. 输入exit退出Diskpart

现在您应该可以安全地移除U盘而不用担心数据丢失。

33
33
33
2012-06-29 20:10:44 +0000

RemoveDrive过去对我很有用

17
17
17
2012-10-12 05:56:40 +0000

对于这个问题的回答… 你不需要第三方的东西。

使用命令行(或PowerShell),我如何告诉Windows在没有用户输入的情况下安全地自动移除硬件?

运行这个命令。RunDll32.exe shell32.dll,Control_RunDLL hotplug.dll弹出 “安全移除硬件 "对话框。

4
4
4
2017-06-14 10:46:54 +0000

既然是备份设备,就意味着它是一个存储设备,因此可以通过 powershell 来完成–只需将 X: 替换为你所需的驱动器编号。

$driveEject = New-Object -comObject Shell.Application
$driveEject.Namespace(17).ParseName("X:").InvokeVerb("Eject")
1
1
1
2014-07-01 14:28:21 +0000

根据本7tutorials-article,你可以通过设置 “快速移除 "来启用安全拔插。这将禁用写缓存每个设备,其中的性能影响是 "可以忽略不计 "的?其针对Windows 7的步骤如下。

( 编辑 ) 根据 this howtogeek-article ,设置 "快速移除 "时还是要小心。这将禁用写缓存,因此可以避免大部分问题。但有些程序可能仍然在写东西,直到被明确地弹出/删除。( 编辑结束 )

步骤。

-将设备插入U盘 -打开设备管理器 -展开磁盘驱动器 -右键点击你的可移动驱动器,例如 "USB2.0闪存盘USB设备” - 选择 “属性 ” - 点击 “策略 "选项卡 - 启用 "快速删除"(禁用 "更好的性能")

( 编辑 ) 注意,你需要使用 "设备管理器 "来更改设置,不能从 "文件资源管理器 "进行更改。(至少在我的Windows 10版本中是这样。)

0
0
0
2019-11-21 19:57:26 +0000

找不到一个内部命令(感谢MS),外面也没有一个脚本能用,去掉字母是一个很差的方法,交互式的方式也不酷,讨厌用第三方工具。在我的情况下,使用我的硬盘上20年的东西:内部的Microsoft Windows Sysinternals可以帮助解决这个问题。

sync -e x:

-刷新U盘 -弹出U盘 -保留字母 -不扭曲USB树

如果有锁,用Sysinternals的handleprocexp就能找到。