Windows可以告诉我什么在使用我的U盘吗?
作为一个好公民,我左键点击任务栏中的 “安全删除硬件 "图标,选择我的U盘进行卸载。
然后我收到了信息。
Windows无法停止你的通用卷设备,因为它正在使用中。关闭所有可能使用该设备的程序或窗口,然后再试一次。
当然,作为操作系统,它清楚地知道哪些应用程序在使用我的设备。那为什么它不告诉我呢?
或者有什么方法可以让我知道?
作为一个好公民,我左键点击任务栏中的 “安全删除硬件 "图标,选择我的U盘进行卸载。
然后我收到了信息。
Windows无法停止你的通用卷设备,因为它正在使用中。关闭所有可能使用该设备的程序或窗口,然后再试一次。
当然,作为操作系统,它清楚地知道哪些应用程序在使用我的设备。那为什么它不告诉我呢?
或者有什么方法可以让我知道?
更简单的方法 。当您尝试弹出可移动硬盘时,Windows(至少是10,AFAIK)会在事件日志中创建一个条目,但由于一个进程对其有锁定而无法弹出。两个事件ID 225将显示进程ID和负责锁定的进程名称。
步骤:
1) 启动事件查看器
2) 打开 “Windows日志",然后打开 "系统 ”
3) 右键单击 “系统",然后选择 "过滤当前日志 ”
4) 在弹出的对话框中,在写着 “所有事件ID "的地方输入 "225"(不加引号)
5) 然后,您将看到所有与因进程锁定驱动器而无法弹出相关的事件。
6) 查看所有这些条目上的时间戳,找出哪些条目与您试图弹出驱动器的实际时间有关。
7) 采取适当的行动。优雅地结束任务(关闭有锁的程序)在大多数情况下是可以的。停止Windows搜索服务也是可以的。停止杀毒软件扫描应该是可以的(如果你当时没有怀疑你有任何病毒)。进入任务管理器,杀死进程可能就不行了。如何处理这个问题已经超出了这个问题的范围。
8)(保存视图……)在 "操作 "面板中(右框中)可以 "将过滤器保存到自定义视图……",这样你就可以在 "自定义视图 "中找到了(左框中 "Windows日志 "上方)
8)。如果你没有另一个带有进程名称的条目,系统进程(进程ID 4)将持有你的硬盘。要绕过这个问题,你必须进入磁盘管理,然后将你要弹出的驱动器脱机。如果文件在你的启动盘上,你就不能把它脱机。在这种情况下,请看下面的说明。
更新2018 。我已经看到诸如 WhatsApp桌面通过系统进程在Chrome Canary上保持句柄的应用程序。由于你不能弹出启动盘(beacuse它正在使用中),解决方案是使用另一个精巧的 Sysinternals 实用程序,称为 Handle 。当你关闭有锁定文件的程序后,启动handle并运行(举例来说)handle64 "Chrome SxS\Application\chrome.exe"
,看看PID 4锁定的文件上是否还存在handle。通过试错,关闭每一个正在运行的程序,直到锁定的文件上不再有句柄。
最好的方法(付费)
下载并运行 SafelyRemove 。它可以帮助你弹出硬盘,如果不能弹出,它会显示哪些进程有锁。
你可以使用 Sysinternals Process Explorer 来查找任何打开的文件的句柄。只要选择Find
菜单,然后选择Find Handle or DLL
。在打开的对话框中,在搜索框中输入驱动器字母。搜索结果应该会显示所有从驱动器打开的文件,以及哪个进程打开了它们。
你也可以用 命令行查询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
EventID=225
意味着系统拒绝了弹出请求 我在一个批处理脚本中使用它。
以下是一个快速的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
输出将列出过去一小时内系统无法弹出磁盘驱动器的所有实例。Message列显示了阻止弹出的进程。在我下面的例子中,任务管理器实际上是罪魁祸首,我在关闭任务管理器后能够弹出。
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_557500445301013C111B1A0.
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_557500445301013C111B1A0.
如果你打开 “我的电脑",而你的硬盘没有列在 "可移动存储 "标题下,那么Windows出于某种原因将其视为固定的系统资源。你将不得不卸载驱动器上的任何分区。
如果是这种情况,打开 "计算机管理",然后进入 "磁盘管理"。对于设备上的每个分区,右键单击该分区,选择 "更改驱动器字母和路径",并删除分配给该分区的任何驱动器字母。这样做后,你应该会发现 "安全弹出 "功能能如你所愿。
有USB,windows报告正在使用中……和这里的其他人一样。
在Windows 10中,Ctrl+Alt+Del进入任务管理器。
通过滚动查找–Windows资源管理器,并突出显示。
右下角有一个友好的按钮,叫做 “重新启动进程”
双击检查 “Windows资源管理器 "是唯一突出显示的东西。
鼠标左键点击 "重新启动进程 "这个友好的按钮。
我只有一个资源管理器,别人有时有两个。注意哪一个重新启动就好了。试着关闭/弹出USB。我的工作正常,关闭USB。
如果你的没有弹出/关闭,那么可能是另一个资源管理器的问题。再试试,重述那个。祝您好运。