Windows 可以告诉我什么在使用我的 USB 驱动器吗?

PP.*_*PP. 137 usb windows-vista mount usb-flash-drive

作为好公民,我左键单击任务栏中的“安全删除硬件”图标,然后选择要卸载的 USB 驱动器。

然后我收到消息:

Windows 无法停止您的通用卷设备,因为它正在使用中。关闭可能正在使用该设备的所有程序或窗口,然后再试一次。

当然,作为操作系统,它确切知道哪些应用程序正在使用我的设备。那它为什么不告诉我呢?

或者有什么办法可以查到吗?

Gai*_*aia 159

更简单的方法:当您尝试弹出可移动驱动器时,Windows(至少 10,AFAIK)会在事件日志中创建一个条目,但由于进程锁定了它而无法弹出。两个事件 ID 225 将显示进程 ID 和负责锁定的进程的名称。

一步步:

1)启动事件查看器

2) 打开“Windows 日志”,然后打开“系统”

3) 右键单击​​“系统”并选择“过滤当前日志”

4) 在出现的对话框中,输入“225”(不带引号),其中显示“所有事件 ID”

5) 然后您将看到与由于进程锁定驱动器而无法弹出相关的所有事件。

6) 查看所有这些条目的时间戳,找出哪些与您尝试弹出驱动器的实际时间相关。

7) 采取适当的行动。大多数情况下,优雅地结束任务(关闭具有锁定的程序)是可以的。停止 Windows Search 服务也可以。停止防病毒扫描应该没问题(如果您当时不怀疑自己有任何病毒)。进入任务管理器并终止进程可能不行。如何处理这超出了本问题的范围。

8)(保存视图...)在“动作”面板(在右侧框架中)中,您可以“将过滤器保存到自定义视图...”,这样您就可以在“自定义视图”中找到它(在“ Windows 日志")

进程标识: 事件查看器条目

工艺名称: 事件查看器条目

8)如果您没有另一个带有进程名称的条目,则系统进程(进程 ID 4)正在保存您的驱动器。要解决此问题,您必须转到磁盘管理并将要弹出的驱动器置于离线状态。如果该文件在您的启动驱动器上,则无法将其置于离线状态。在这种情况下,请参阅下面的注释:

2018 年更新:我已经看到WhatsApp Desktop等应用程序通过 System Process 保持 Chrome Canary 上的句柄。由于您无法弹出启动盘(因为它正在使用中),解决方案是使用另一个漂亮的Sysinternals实用程序,称为Handle。关闭具有锁定文件的程序后,启动句柄并运行(作为示例)handle64 "Chrome SxS\Application\chrome.exe"以查看句柄是否仍然存在于具有 PID 4 锁定的文件上。通过反复试验,关闭正在运行的每个程序,直到锁定文件上没有更多句柄。

最佳方法(付费)

下载并运行SafelyRemove。它可以帮助您弹出驱动器,如果它不能弹出驱动器,它会显示哪些进程锁定了它:

在此处输入图片说明

  • Windows 10 任务管理器也可以防止删除!谁新。 (27认同)
  • `进程 ID 为 4 的应用程序系统停止了设备的移除或弹出......`好吧......我将尝试禁用`分布式链接跟踪客户端`,看看是否有帮助。 (4认同)
  • 也适用于win7。可能在 win8 上也能正常工作。谢谢这个方法。这个问题可能会令人气愤。 (3认同)
  • 有用的提示。感谢那。我保存了一个自定义视图“锁定设备”,以便将来快速访问这个过滤视图。 (2认同)

hea*_*vyd 72

您可以使用Sysinternals Process Explorer来查找任何打开的文件的句柄。只需选择Find菜单并选择Find Handle or DLL。在打开的对话框中,在搜索框中输入驱动器号。搜索结果应显示从驱动器打开的所有文件以及打开它们的进程。

  • 在杀死有问题的进程后,Windows 仍然不会释放 USB 驱动器。去搞清楚.... (6认同)
  • Windows 资源管理器本身有时可以锁定驱动器。您可以在 Windows 10 的任务管理器中重新启动 Windows 资源管理器(一直向下滚动以找到它)。在旧版本的 Windows 中,您必须结束 explorer.exe ,并从“文件”菜单中明确运行 explorer.exe。 (5认同)
  • Process Explorer 没有找到任何关于 `M:` 的内容。 (4认同)
  • 我只用资源管理器探索了驱动器。然后从 cmd.exe shell,我在那个驱动器上运行了一个备份脚本,它完成了。关闭 cmd.exe 窗口。使用 Taskmgr 杀死并重新启动 Explorer.exe。尽管如此,驱动器仍在使用中,不会弹出。 (3认同)
  • 如果 Process explorer 没有显示,您可以使用 Nirsoft 的 OpenedFilesView 软件。您不会看到哪个程序正在使用该驱动器(或 Process Explorer 也会发现它),但您仍会看到句柄、使用过的文件并有可能关闭它们(如果您想冒险的话) (2认同)

小智 18

您还可以使用命令行查询 Windows 日志,使用wevtutil.exe(自 Windows 7 起),知道Windows Kernel-PnP 使用事件 ID 225来记录系统(始终具有进程 ID 4)拒绝删除或弹出设备 USB\VID_####&PID_############(其中 # 表示十六进制数)。

wevtutil qe System /q:"*[System[(EventID=225)]]" /c:5 /f:text /rd:true
Run Code Online (Sandbox Code Playgroud)
  • qe System : 从系统日志中查询事件
  • /q : 使用 XPath 查询
  • EventID=225 表示系统拒绝弹出请求
  • /c:5 :要检索的条目数(此处为 5)
  • /f:text : 格式(默认为 xml)
  • /rd:true : 逆序(最新的在前)

我在批处理脚本中使用它。


Jon*_*Jon 12

这是一个快速的PowerShell命令,用于查询事件日志并显示哪个应用程序阻止了驱动器弹出(适用于我的 Windows 10,可能也适用于 7/8)

Get-EventLog -LogName System -after (Get-Date).AddHours(-1) | Where-Object {$_.EventID -eq 225} | Sort-Object TimeGenerated | Format-Table -Wrap
Run Code Online (Sandbox Code Playgroud)

输出将列出过去一小时内系统无法弹出磁盘驱动器的所有实例。的消息列显示堵塞喷出的过程。在我下面的示例中,任务管理器实际上是罪魁祸首,关闭任务管理器后我能够弹出。

PS C:\Users\Jonathan> Get-EventLog -LogName System -after (Get-Date).AddHours(-1) | \Where-Object {$_.EventID -eq 225} | Sort-Object TimeGenerated | Format-Table -Wrap

   Index Time          EntryType   Source                 InstanceID Message
   ----- ----          ---------   ------                 ---------- -------
   14692 Sep 07 10:50  Warning     Microsoft-Windows-Ke          225 The application \Device\HarddiskVolume4\Windows\System32\Taskmgr.exe with process id 11972 stopped
                                   rnel-PnP                          the removal or ejection for the device USB\VID_0781&PID_5575\200445301013C111B1A0.
   14693 Sep 07 10:50  Warning     Microsoft-Windows-Ke          225 The application \Device\HarddiskVolume4\Windows\System32\Taskmgr.exe with process id 11972 stopped
                                   rnel-PnP                          the removal or ejection for the device USB\VID_0781&PID_5575\200445301013C111B1A0.
Run Code Online (Sandbox Code Playgroud)


小智 6

对我来说(Windows 7)。

  1. Windows
  2. 在“搜索程序和文件:输入:diskmgmt.msc
  3. 在搜索列表中找到条目并右键单击 -选择以管理员身份运行
  4. 输入管理员凭据以运行“磁盘管理”(如果需要)
  5. 查找不会在磁盘列表中弹出的有问题的 USB 驱动器
  6. 左侧面板,右键单击选择“弹出
  7. 句柄“应该”关闭 - 您可以随时在系统内部进程浏览器中仔细检查

注意: “安全删除硬件并弹出媒体”任务栏图标不再显示 USB 驱动器 - 只有三个点

  1. 物理移除驱动器

  • Windows 7 磁盘管理中没有左侧面板或弹出命令。(版本 1.00,根据帮助/关于)。我可以缩小它,删除它,将其标记为活动,格式化,...没有弹出。 (6认同)
  • 最近我使用“离线”来停止我的外部 USB-SSD 磁盘,它很可能被系统(Win 10)以某种方式使用,之后“安全删除”确实起作用了。一段时间后,我重新插入该磁盘并获得了带有“RAW”分区的磁盘。通过执行`chkdsk /ff:` 文件系统以某种方式重新设计,但一切都在'found.000' 中。所以......这种方法看起来并不安全。幸运的是,我在那个磁盘上没有任何真正重要的东西...... (3认同)

小智 5

您可以启动 resmon.exe(通过 WIN+R),转到磁盘 > 磁盘活动 > 按文件排序现在您可以看到系统正在访问的所有文件以及哪些进程正在访问它们,按文件路径排序(顺便说一下带驱动器号)。可能不适用于所有情况,但这是一种简单的方法。

重新启动计算机似乎“释放”了设备使用量。同样为了更快地删除,您可以在设备的硬件部分禁用 Windows 缓存,有时 Windows 将需要比预期更长的时间将缓存刷新到外部磁盘,并显示该设备正在使用的消息(因为它将被窗户本身)