O Windows pode me dizer o que está usando minha unidade USB?

100

Sendo o bom cidadão que sou, clique com o botão esquerdo do mouse no ícone "Remover hardware com segurança" na barra de tarefas e selecione minha unidade USB para desmontar.

Então eu recebo a mensagem:

O Windows não pode parar o seu dispositivo de volume genérico porque está em uso. Feche todos os programas ou janelas que possam estar usando o dispositivo e tente novamente mais tarde.

Obviamente, sendo o sistema operacional, ele sabe exatamente quais aplicativos estão usando meu dispositivo. Então, por que isso não me diz?

Ou existe uma maneira de descobrir?

PP.
fonte
1
Eu tive várias ocasiões com o Vista, onde eu nunca consegui descobrir isso e ele não "liberou" o USB até que eu fosse reiniciado / desligado. Atualizei para o Win7 e não tive esse problema desde então, pelo que pensei, pelo menos no meu PC, era um problema de driver do sistema.
BBlake

Respostas:

57

Você pode usar o Sysinternals Process Explorer para localizar o identificador de todos os arquivos abertos. Basta selecionar o Findmenu e selecione Find Handle or DLL. Na caixa de diálogo exibida, digite a letra da unidade na caixa de pesquisa. Os resultados da pesquisa devem mostrar todos os arquivos abertos na unidade e qual processo os abre.

pesado
fonte
4
Após encerrar o processo ofensivo, o Windows ainda não liberaria a unidade USB. Go figure ....
Grantly
2
Eu apenas explorei a unidade com o Explorer. Em seguida, a partir de um shell do cmd.exe, executei um script de backup nessa unidade, que terminou. Fechou a janela cmd.exe. Matou e reiniciou o Explorer.exe com o Taskmgr. Ainda assim, a unidade está em uso e não será ejetada.
Kaz
3
O Process Explorer não encontra nada para M:.
Kaz
2
Se o Process Explorer não mostrar nada, você poderá usar o software OpenedFilesView da Nirsoft. Você não verá qual programa está usando a unidade (ou o Process Explorer também o teria encontrado), mas ainda verá as alças, os arquivos usados ​​e a possibilidade de fechá-los (se você quiser arriscar)
LeFauve
4
Às vezes, o próprio Windows Explorer pode bloquear unidades. Você pode reiniciar o Windows Explorer no Gerenciador de tarefas no Windows 10 (role a tela para baixo para encontrá-lo). Nas versões anteriores do Windows, você deverá finalizar o explorer.exe e executar explicitamente o explorer.exe no menu Arquivo.
Christopher Hostage
113

Método mais simples : o Windows (pelo menos 10, AFAIK) cria uma entrada no log de eventos quando você tenta ejetar uma unidade removível e não pode porque o processo possui um bloqueio. As duas identificações de evento 225 mostrarão a identificação do processo e o nome do processo responsável pelo bloqueio.

Passo a passo:

1) Inicie o visualizador de eventos

2) Abra "Logs do Windows" e depois "Sistema"

3) Clique com o botão direito do mouse em "Sistema" e escolha "Filtrar registro atual"

4) Na caixa de diálogo exibida, digite "225" (sem aspas) onde se lê "Todas as identificações de evento"

5) Você verá todos os eventos relacionados à impossibilidade de ejeção porque um processo bloqueou a unidade.

6) Observe os registros de data e hora em todas essas entradas e descubra quais estão relacionadas à hora real em que você tentou ejetar a unidade.

7) Tome as medidas apropriadas. Terminar uma tarefa normalmente (fechar o programa que tem o bloqueio) é bom na maioria das vezes. Parar o serviço de Pesquisa do Windows também está ok. A interrupção de uma verificação antivírus deve estar ok (se você não suspeitar que tenha algum vírus no momento). Entrar no gerenciador de tarefas e interromper o processo pode não estar bem. Como lidar com isso está além do escopo desta questão.

8) (Salvar a visualização ...) no painel Ações (no quadro direito), você pode "Salvar filtro na visualização personalizada ..." para encontrá-lo em "Visualizações personalizadas" (no quadro esquerdo acima do " Logs do Windows ")

ID do processo: Entrada do Visualizador de Eventos

Nome do processo: Entrada do Visualizador de Eventos

8) Se você não tiver outra entrada com um nome de processo , o processo do sistema (identificação do processo 4) está mantendo sua unidade. Para contornar esse problema, você precisará acessar o gerenciamento de disco e colocar a unidade que deseja ejetar offline . Se o arquivo estiver na sua unidade de inicialização, você não poderá colocá-lo offline. Nesse caso, veja a nota abaixo:

ATUALIZAÇÃO 2018 : vi aplicativos como o WhatsApp Desktop controlando o Chrome Canary por meio do processo do sistema . Como você não pode ejetar o disco de inicialização (porque está em uso), a solução foi usar outro utilitário bacana do Sysinternals , chamado Handle . Depois de fechar o programa que possui o arquivo bloqueado, inicie o identificador e execute (como um exemplo) handle64 "Chrome SxS\Application\chrome.exe"para verificar se os identificadores ainda estão presentes no arquivo que possui o bloqueio do PID 4. Por tentativa e erro, feche cada programa em execução, até que não haja mais identificadores no arquivo bloqueado.

Melhor método (pago)

Baixe e execute o SafelyRemove . Ele ajuda a ejetar a unidade e, se não for possível, exibe quais processos têm uma trava:

insira a descrição da imagem aqui

Gaia
fonte
1
Você pode falar sobre o número 225. Como conseguiu?
Ajeeb.KP
3
The application System with process id 4 stopped the removal or ejection for the device ...Bem ... Vou tentar desativar Distributed Link Tracking Cliente ver se isso ajuda.
Dízimo-Firion
17
O Windows 10 Task Manager também pode impedir a remoção! Quem novo.
Alex Che
3
Também funciona bem para win7. Provavelmente também funciona bem no win8. Obrigado por este método. O problema pode ser irritante.
Syndacate
2
Dica útil. Obrigado por isso. Salvei uma exibição personalizada "Dispositivos bloqueados" para acesso rápido futuro a essa exibição filtrada.
Steve Crane
6

Você também pode usar a linha de comando para consultar o log do Windows , com wevtutil.exe (desde o Windows 7), sabendo que o Windows Kernel-PnP usa a Identificação de Evento 225 para registrar o sistema (sempre com a identificação do processo 4), recusando remover ou ejetar o dispositivo USB \ VID _ #### & PID _ ############ (onde os # denotam números hexadecimais).

wevtutil qe System /q:"*[System[(EventID=225)]]" /c:5 /f:text /rd:true
  • qe System: consultar eventos do log do sistema
  • / q: consulta com XPath
  • EventID=225 significa que o sistema recusou uma solicitação de ejeção
  • / c: 5: número de entradas a serem recuperadas (5 aqui)
  • / f: texto: formato (o padrão é xml)
  • / rd: true: ordem inversa (a mais nova primeiro)

Eu o uso em um script em lote.

Tchonialite
fonte
5

Para mim (Windows 7).

  1. Pressione a tecla Windows
  2. Em "programas e arquivos de pesquisa: digite: diskmgmt.msc
  3. Na lista de pesquisa, localize a entrada e clique com o botão direito do mouse - selecione executar como administrador
  4. Digite credenciais de administrador para executar "Gerenciamento de disco" (se necessário)
  5. Encontre drive USB ofensivo que não será ejetado na lista de discos
  6. Painel esquerdo, clique com o botão direito do mouse e selecione " Ejetar "
  7. Os manipuladores "devem" fechar - você sempre pode verificar novamente o sys internals process explorer

Nota: o ícone da barra de tarefas "Remover hardware e ejetar mídia com segurança" não mostra mais a unidade USB - apenas três pontos

  1. Remova fisicamente a unidade
blakev
fonte
4
Nenhum painel esquerdo ou comando Ejetar no Windows 7 Disk Management. (Versão 1.00, de acordo com Ajuda / Sobre). Eu posso encolher, apagar, marcar como ativo, formatar, ... não ejetar.
Kaz
1
Também não foi possível encontrar Ejetar, mas a opção Off-line fez o trabalho. E não se esqueça de configurá-lo online novamente ao reconectar seu dispositivo de armazenamento.
Adriano P
2
Recentemente, usei 'Offline' para interromper meu disco USB-SSD externo que provavelmente foi de alguma forma usado pelo sistema (Win 10), depois que a "remoção segura" funcionou. Algum tempo depois, conectei novamente esse disco e obtive o disco com a partição "RAW". A execução do chkdsk /f f:sistema de arquivos foi de algum modo reengenharia, mas tudo caiu em 'found.000'. Então ... esse método não parece ser realmente seguro. Felizmente eu não tinha nada realmente importante nesse disco ...
Xtra Coder
5

Aqui está um comando rápido do PowerShell para consultar o log de eventos e mostrar qual aplicativo está bloqueando a ejeção da unidade (funciona para mim no Windows 10, provavelmente também funciona com 7/8)

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

A saída listará todas as instâncias na última hora em que o sistema não pôde ejetar uma unidade de disco. A coluna Mensagem mostra o processo que bloqueou a ejeção. No meu exemplo abaixo, o gerenciador de tarefas era realmente o culpado e pude ejetar depois de fechar o gerenciador de tarefas.

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.
Jon
fonte
3

Você pode iniciar o resmon.exe (por meio do WIN + R), vá para o disco> Atividade do disco> Classificar por arquivo Agora você pode ver todos os arquivos acessados ​​pelo sistema e quais processos estão acessando, ordenados pelo caminho do arquivo (que inicia o btw com uma letra de unidade). Pode não funcionar com todos os casos, mas é uma abordagem simples.

Reiniciar o computador parece "liberar" o uso do dispositivo. Além disso, para uma remoção mais rápida, você pode desativar o cache do Windows na seção Hardware do seu dispositivo. Às vezes, o Windows leva mais tempo do que o esperado para liberar o cache no disco externo e exibe a mensagem informando que o dispositivo está em uso (porque estará, por Próprio Windows)

Felype
fonte
Semelhante a este: No resmon.exe, na guia CPU. Role para baixo até a caixa Alças associadas. Há uma caixa de pesquisa de identificadores de pesquisa lá, onde você pode inserir a letra da unidade bloqueada.
11553 Andrew Andrew
2

Se você abrir "Meu computador" e sua unidade não estiver listada nos cabeçalhos "Armazenamento removível", o Windows o exibirá como um recurso fixo do sistema por algum motivo. Você precisará desmontar as partições da unidade.

Se for esse o caso, abra "Gerenciamento do computador" e vá para "Gerenciamento de disco". Para cada partição no dispositivo, clique com o botão direito do mouse na partição, selecione "Alterar letras e caminhos da unidade" e remova todas as letras de unidade atribuídas a essa partição. Depois de fazer isso, você deve descobrir que o recurso "ejetar com segurança" funciona como você esperava.

user1575326
fonte
1
Isso funcionou exatamente como você descreveu no meu laptop executando o Windows 7 Home Premium. Eu gostaria que o botão no Windows usasse a palavra "Desmontar" em vez de "Remover" (que é preocupante semelhante a "excluir" em minha mente).
steveOw
0

Tinha USB que o Windows relatava estar em uso ... o mesmo que todos os outros aqui.

No Windows 10, Ctrl + Alt + Del acessa o Gerenciador de tarefas.

Encontre rolando - Windows Explorer. e destaque.

No canto inferior direito há um botão amigável chamado "Reiniciar processo"

Verifique três vezes se o "Windows Explorer" é a única coisa destacada.

Clique com o botão esquerdo do mouse no botão amigável "Reiniciar processo".

Eu só tinha um único Explorer, outros às vezes têm dois. Apenas observe qual deles volta. Tente fechar / ejetar o USB. O meu funcionou bem, feche o USB.

Se o seu não ejetar / fechar, provavelmente foi o outro Explorer. Tente novamente e reinstale esse. Boa sorte.

John Henson
fonte
4
Bem-vindo ao superusuário: leia a pergunta novamente com atenção. Sua resposta não responde à pergunta original. "O Windows pode me dizer o que está usando minha unidade USB?" Reserve alguns minutos e leia: - superuser.com/help .Resposta: superuser.com/help/how-to- resposta , mais uma vez bem-vindo ao superuser.Thankyou
mic84