Может ли Windows сказать мне, что использует мой USB-накопитель?


100

Будучи добропорядочным гражданином, я щелкаю левой кнопкой мыши на значке «Безопасное извлечение устройства» на панели задач и выбираю свой USB-накопитель для отключения.

Тогда я получаю сообщение:

Windows не может остановить ваше устройство тома Generic, потому что оно используется. Закройте все программы или окна, которые могут использовать устройство, а затем повторите попытку позже.

Конечно, будучи операционной системой, она точно знает , какие приложения используют мое устройство. Так почему это не говорит мне?

Или есть способ, который я могу узнать?


1
У меня было много случаев с Vista, где я никогда не мог понять это, и он не "освободил бы" USB, пока я не перезагрузил / выключил. Обновлен до Win7 и с тех пор такой проблемы не было, поэтому я решил, что, по крайней мере, на моем ПК это была проблема с системным драйвером.
BBlake

Ответы:


58

Вы можете использовать Sysinternals Process Explorer, чтобы найти дескриптор для любых открытых файлов. Просто выберите Findменю и выберите Find Handle or DLL. В открывшемся диалоговом окне введите букву диска в поле поиска. Результаты поиска должны показывать все файлы, которые открыты с диска и в каком процессе они открыты.


4
После завершения процесса оскорбления Windows все равно не освободит USB-накопитель. Пойди разберись ...
Великолепно,

2
Я исследовал диск только с помощью Explorer. Затем из оболочки cmd.exe я запустил на этом диске сценарий резервного копирования, который завершился. Закрыл окно cmd.exe. Убил и перезапустил Explorer.exe с помощью Taskmgr. Тем не менее, диск используется и не будет извлечен.
Каз

3
Process Explorer не находит ничего для M:.
Каз

2
Если Process Explorer ничего не показывает, вы можете использовать программное обеспечение Nirsoft OpenedFilesView. Вы не увидите, какая программа использует диск (или Process Explorer тоже его найдет), но вы все равно увидите дескрипторы, использованные файлы и сможете закрыть их (если вам хочется рисковать)
LeFauve

4
Сам Windows Explorer иногда может заблокировать диски. Вы можете перезапустить Проводник Windows в Диспетчере задач в Windows 10 (прокрутите его полностью вниз, чтобы найти его). В более старых версиях Windows вам придется завершить explorer.exe и явно запустить explorer.exe из меню «Файл».
Кристофер Заложник

113

Более простой метод : Windows (по крайней мере, 10, AFAIK) создает запись в журнале событий, когда вы пытаетесь извлечь съемный диск, и вы не можете этого сделать, потому что процесс заблокирован. Два идентификатора события 225 будут отображать идентификатор процесса и имя процесса, ответственного за блокировку.

Шаг за шагом:

1) Запустить просмотрщик событий

2) Откройте «Журналы Windows», затем «Система».

3) Щелкните правой кнопкой мыши «Система» и выберите «Фильтровать текущий журнал»

4) В появившемся диалоговом окне введите «225» (без кавычек), где написано «Все идентификаторы событий».

5) Затем вы увидите все события, связанные с невозможностью извлечения, потому что процесс заблокировал диск.

6) Посмотрите на временные метки всех этих записей и выясните, какие из них относятся к фактическому времени, когда вы пытались извлечь диск.

7) Примите соответствующие меры. Изящное завершение задачи (закрытие программы с блокировкой) в большинстве случаев нормально. Остановка службы поиска Windows также в порядке. Остановка антивирусного сканирования должна быть в порядке (если вы не подозреваете, что у вас есть какие-либо вирусы в то время). Зайдя в диспетчер задач и убив процесс, возможно, не будет в порядке. Как с этим бороться, выходит за рамки этого вопроса.

8) (Сохранить вид ...) на панели «Действия» (в правом кадре) вы можете «Сохранить фильтр в пользовательском представлении ...», чтобы найти его в «Пользовательских представлениях» (в левом кадре над « Журналы Windows ")

Идентификатор процесса: Запись вьюера событий

Имя процесса: Запись вьюера событий

8) Если у вас нет другой записи с именем процесса , системный процесс (идентификатор процесса 4) удерживает ваш диск. Чтобы обойти это, вам нужно перейти к управлению дисками и перевести диск, который вы хотите извлечь, в автономный режим . Если файл находится на вашем загрузочном диске, вы не можете перевести его в автономный режим. В этом случае см. Примечание ниже:

ОБНОВЛЕНИЕ 2018 : я видел такие приложения, как WhatsApp Desktop, сохраняющие дескрипторы на Chrome Canary через системный процесс . Поскольку вы не можете извлечь загрузочный диск (поскольку он используется), решение было использовать другую изящную утилиту Sysinternals , названную Handle . После того, как вы закроете программу, в которой есть заблокированный файл, запустите дескриптор и запустите (в качестве примера), handle64 "Chrome SxS\Application\chrome.exe"чтобы увидеть, присутствуют ли дескрипторы в файле, который имеет блокировку PID 4. Методом проб и ошибок закрывайте каждую запущенную программу, пока на заблокированном файле больше не останется дескрипторов.

Лучший метод (платный)

Скачайте и запустите SafelyRemove . Он помогает вам извлечь диск и, если он не может этого сделать, показывает, какие процессы заблокированы на нем:

введите описание изображения здесь


1
Расскажите, пожалуйста, о номере 225. Как вы его получили?
Ajeeb.KP

3
The application System with process id 4 stopped the removal or ejection for the device ...Ну ... попробую отключить Distributed Link Tracking Clientи посмотрю, поможет ли это.
Титен-

17
Диспетчер задач Windows 10 также может предотвратить удаление! Кто новый.
Алекс Че

3
Также хорошо работает для win7. Наверное, отлично работает и на win8. Спасибо за этот метод. Проблема может приводить в бешенство.
Syndacate

2
Полезный совет. Спасибо за это. Я сохранил пользовательский вид «Заблокированные устройства» для будущего быстрого доступа к этому отфильтрованному представлению.
Стив Крейн

6

Вы также можете использовать командную строку для запроса журнала Windows , используя wevtutil.exe (начиная с Windows 7), зная, что Windows Kernel-PnP использует событие 225 для регистрации в системе (всегда с идентификатором 4 процесса) отказа от удаления или удаления устройство USB \ VID _ #### & PID _ ############ (где # обозначают шестнадцатеричные числа).

wevtutil qe System /q:"*[System[(EventID=225)]]" /c:5 /f:text /rd:true
  • qe System: запрос событий из системного журнала
  • / q: запрос с XPath
  • EventID=225 означает, что система отклонила запрос на удаление
  • / c: 5: количество записей для извлечения (5 здесь)
  • / f: текст: формат (по умолчанию xml)
  • / rd: true: обратный порядок (сначала самый новый)

Я использую это в пакетном скрипте.


5

Для меня (Windows 7).

  1. Нажмите клавишу Windows
  2. В разделе «Поиск программ и файлов» введите: diskmgmt.msc
  3. В списке поиска найдите запись и щелкните правой кнопкой мыши - выберите «Запуск от имени администратора».
  4. Введите учетные данные администратора для запуска «Управление дисками» (при необходимости)
  5. Найдите оскорбительный USB-накопитель, который не будет извлечен в списке дисков
  6. Левая панель, правой кнопкой мыши выберите « Извлечь »
  7. Дескрипторы «следует» закрыть - вы всегда можете дважды проверить в sys innerals process explorer

Примечание. Значок панели задач «Безопасное извлечение устройства и извлечение носителя» больше не отображает USB-диск - только три точки

  1. Физически удалить диск

4
Нет левой панели или команды Eject в Windows 7 Управление дисками. (Версия 1.00, согласно Help / About). Я могу уменьшить его, удалить, пометить как активный, отформатировать, ... не извлекать.
Каз

1
Не удалось найти Eject, но вариант Offline сделал свою работу. И не забудьте установить его снова при подключении устройства хранения данных.
Адриано П

2
Недавно я использовал «Offline», чтобы остановить внешний USB-SSD-диск, который, скорее всего, каким-то образом использовался системой (Win 10), после того, как это «безопасное удаление» сработало. Через некоторое время я снова подключил этот диск и получил диск с разделом «RAW». При запуске chkdsk /f f:файловая система была каким-то образом перестроена, но все оказалось в 'found.000'. Итак ... этот метод не выглядит действительно безопасным. К счастью, у меня не было ничего действительно важного на этом диске ...
Xtra Coder

5

Вот быстрая команда 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

В выводе будут перечислены все экземпляры за последний час, когда система не смогла извлечь диск. Сообщение столбец показывает процесс , который блокирован выброс. В моем примере ниже диспетчер задач был фактически виновником, и я смог удалить его после закрытия диспетчера задач.

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.

3

Вы можете запустить resmon.exe (через WIN + R), перейти на диск> Активность на диске> Сортировать по файлу. Теперь вы можете видеть все файлы, к которым обращается система, и какие процессы обращаются к ним, упорядоченные по пути к файлу (который запускается, кстати) с буквой диска). Может работать не во всех случаях, но это простой подход.

Перезагрузка компьютера кажется «освободить» использование устройства. Также для более быстрого удаления вы можете отключить кэширование Windows в разделе «Оборудование» вашего устройства, иногда Windows займет больше времени, чем ожидалось, чтобы сбросить кэш на внешний диск, и отобразит это сообщение о том, что устройство используется (потому что оно будет Сама винда)


Аналогично этому: в resmon.exe, на вкладке ЦП. Прокрутите вниз до поля «Связанные маркеры». Там есть поле поиска «Ручки поиска», где вы можете ввести букву заблокированного диска.
Андрей

2

Если вы открываете «Мой компьютер», а ваш диск не указан в заголовках «Съемное хранилище», то Windows почему-то рассматривает его как фиксированный системный ресурс. Вам придется размонтировать все разделы на диске.

Если это так, откройте «Управление компьютером», затем перейдите к «Управление дисками». Для каждого раздела на устройстве щелкните правой кнопкой мыши раздел, выберите «Изменить буквы и пути диска» и удалите все буквы дисков, назначенные этому разделу. Как только вы это сделаете, вы должны обнаружить, что функция «безопасного извлечения» работает так, как вы надеялись.


1
Это сработало в точности так, как вы описали на моем ноутбуке под управлением Windows 7 Home Premium. Мне бы очень хотелось, чтобы кнопка в окнах использовала слово «Размонтировать» вместо «Удалить» (что, на мой взгляд, похоже на «удалить»).
steveOw

0

Если бы USB, о котором сообщалось, что windows используется ... такой же, как и все остальные здесь.

В Windows 10 Ctrl + Alt + Del попадает в диспетчер задач.

Найти с помощью прокрутки - Windows Explorer. и выделить.

Справа внизу - приятная дружественная кнопка «Перезапустить процесс».

Двойная тройная проверка, что «Проводник Windows» - единственное, что выделено.

Щелкните левой кнопкой мыши дружественную кнопку «Перезапустить процесс».

У меня был только один Проводник, у других иногда было два. Просто отметьте, какой из них возвращается. Попробуйте и закройте / извлеките USB. Мой работал нормально, закройте USB.

Если ваш не извлекает / закрывает, то, вероятно, это был другой проводник. Попробуйте еще раз и перезапустите его. Удачи.


4
Добро пожаловать в суперпользователя: Пожалуйста, внимательно прочитайте вопрос. Ваш ответ не отвечает на первоначальный вопрос. «Может ли Windows сказать мне, что использует мой USB-накопитель?» Пожалуйста, уделите пару минут и прочитайте: - superuser.com/help. Ответ: superuser.com/help/how-to- ответ , снова добро пожаловать в суперпользователя.
Спасибо
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.