it-swarm-ru.tech

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

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

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

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

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

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

92
PP.

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

55
heavyd

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

Шаг за шагом:

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

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

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

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

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

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

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

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

Идентификатор процесса:  Event Viewer Entry

Имя процесса:  Event Viewer Entry

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

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

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

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

 enter image description here

103
Gaia

Вы также можете использовать командную строку для запроса журнала Windows , с помощью wevtutil.exe (начиная с Windows 7), зная, что Windows Kernel-PnP использует Event Log 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
Tchonialite

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

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

Примечание: «Безопасное извлечение оборудования и извлечение носителя» значок на панели задач больше не показывает USB-накопитель - всего три точки

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

Вот быстрая 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_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.
5
Jon

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

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

1
Felype

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

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

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

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

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

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

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

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

0
John Henson

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

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

0
user1575326