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

78

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

Então recebo a mensagem:

Windows can't stop your Generic volume device because it is in use. Close any programs or windows that might be using the device, and then try again later.

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

Ou há uma maneira que eu possa descobrir?

    
por PP. 24.12.2009 / 18:00

8 respostas

46

Você pode usar o Sysinternals Process Explorer para encontrar o identificador de todos os arquivos que estão abertos. Basta selecionar o menu Find e selecionar Find Handle or DLL . Na caixa de diálogo aberta, insira a letra da unidade na caixa de pesquisa. Os resultados da pesquisa devem mostrar todos os arquivos que estão abertos na unidade e qual processo os abre.

    
por 24.12.2009 / 18:03
86

Método mais simples : Windows (10 pelo menos, AFAIK) cria uma entrada no log de eventos quando você tenta ejetar uma unidade removível e não é possível porque um processo tem um bloqueio nela. Os dois IDs de Evento 225 mostrarão o ID 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 "System" e escolha "Filter Current Log"

4) Na caixa de diálogo que aparece, digite "225" (sem aspas) onde diz "Todos os IDs de evento"

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

6) Veja os timestamps em todas essas entradas e descubra quais estão relacionadas com a hora atual em que você tentou ejetar a unidade.

7) Tome a ação apropriada. Terminar uma tarefa normalmente (fechando o programa que tem o bloqueio) está OK na maior parte do tempo. Parar o serviço de pesquisa do Windows também está ok. Parar uma verificação antivírus deve estar ok (se você não suspeitar que tem algum vírus no momento). Entrar no gerenciador de tarefas e matar o processo pode não estar ok. Como lidar com isso está além do escopo desta questão.

8) (Salve a visão ...) no painel Ações (no quadro à direita) você poderia "Salvar Filtro na Visualização Personalizada ..." para encontrá-lo em "Exibições Personalizadas" (no quadro à esquerda acima dos "Registros do Windows")

ID do processo:

Nomedoprocesso:

8)Sevocênãotiveroutraentradacomumnomedeprocesso,oprocessodoSistema(IDdoprocesso4)estásegurandosuaunidade.Paracontornareste,vocêteráqueiraogerenciamentodediscoe colocar a unidade você deseja ejetar off-line . Se o arquivo estiver na sua unidade de inicialização, você não poderá colocá-lo off-line. Nesse caso, veja a observação abaixo:

UPDATE 2018 : Eu vi aplicativos como o WhatsApp Desktop mantendo alças no Chrome Canary por meio do System Process . Como você não pode ejetar o disco de inicialização (porque ele está em uso), a solução era usar outro Sysinternals bacana utilitário, chamado Handle . Depois de fechar o programa que tem o arquivo bloqueado, inicie a alça e execute (como um exemplo) handle64 "Chrome SxS\Application\chrome.exe" para ver se as alças 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 alças no arquivo bloqueado.

Melhor método (pago)

Faça o download e execute SafelyRemove . Ele ajuda você a ejetar a unidade e, se não conseguir, exibe quais processos têm um bloqueio:

    
por 18.07.2016 / 03:20
4

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. Insira as credenciais de administrador para executar o "Gerenciamento de disco" (se necessário)
  5. Localize a unidade usb que não será ejetada na lista de discos
  6. Painel esquerdo, clique com o botão direito e selecione " Ejetar "
  7. Identificadores "devem" fechar - você sempre pode verificar o explorador de processos do sistema interno

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

  1. Remover fisicamente a unidade
por 12.01.2016 / 13:44
3

Você também pode usar linha de comando para consultar o log do Windows , com wevtutil.exe (desde o Windows 7) com o conhecimento de que o Windows Kernel-PnP usa o evento ID 225 para registrar o sistema (sempre tendo o ID do processo 4) recusa para remover ou ejete o dispositivo USB \ VID _ #### & PID _ ############ (onde os #s denotam números hexadecimais).

wevtutil qe System /q:"*[System[(EventID=225)]]" /c:5 /f:text /rd:true
  • qe Sistema: consulta eventos do log do sistema
  • / q: consulta com XPath
  • EventID=225 significa que o sistema recusou um pedido de ejeção
  • / c: 5: número de entradas para recuperar (5 aqui)
  • / f: text: format (o padrão é xml)
  • / rd: true: ordem inversa (mais recente primeiro)

Eu uso em um script em lote.

    
por 09.03.2018 / 08:36
1

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

Reiniciar o computador parece "liberar" o uso do dispositivo. Também para remoção mais rápida, você pode desativar o cache do Windows na seção Hardware do seu dispositivo, às vezes o Windows levará mais tempo do que o esperado para liberar o cache para o disco externo e exibirá essa mensagem dizendo que o dispositivo está em uso (porque será, por O próprio Windows)

    
por 21.12.2016 / 18:48
1

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 com o Windows 10, provavelmente funciona também 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 Message mostra o processo que bloqueou a ejeção. No meu exemplo abaixo, o gerenciador de tarefas foi realmente o culpado e consegui 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_55750445301013C111B1A0.
   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_55750445301013C111B1A0.
    
por 07.09.2018 / 18:15
0

Se você abrir "Meu Computador" e sua unidade não estiver listada nos cabeçalhos "Armazenamento Removível", o Windows estará exibindo-a como um recurso de sistema fixo por algum motivo. Você terá que desmontar quaisquer partições na unidade.

Se este for 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.

    
por 03.12.2016 / 21:50
0

Tinha USB que o Windows reportou como estando em uso ... igual a todos os outros aqui.

No Windows 10, o Ctrl + Alt + Del chega ao Gerenciador de Tarefas.

Localize rolando - Windows Explorer. e destaque.

A parte inferior direita é um botão amigável chamado "Reiniciar processo"

Duplo triplo verifique se "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 tenho dois. Apenas observe em qual voltará. Experimente e feche / ejete o USB. O meu funcionou bem, feche o USB.

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

    
por 26.03.2018 / 09:53