Uma das minhas ferramentas favoritas para Linux é o lsof - um verdadeiro canivete suíço!
Hoje me perguntei quais programas em um sistema WinXP tinham um arquivo específico aberto. Existe algum utilitário equivalente ao lsof? Além disso, o arquivo em questão estava em um compartilhamento de rede, então não tenho certeza se isso complica as coisas.
windows
linux
command-line
filesystems
Daniel Fone
fonte
fonte
O equivalente a
lsof -p pid
é a saída combinada de sysinternals handle e listdlls, ou seja,você pode descobrir pid com sysinternals
pslist
.fonte
Experimente o Handle . Filemon e Regmon também são ótimos para tentar descobrir o que o programa duce foo está fazendo em seu sistema.
fonte
Um equivalente de lsof poderia ser a saída combinada do identificador e listdlls do Sysinternals , ou seja:
Infelizmente, você precisa "executar como administrador" para poder usá-los.
Além disso, listdlls e handle não produzem forma semelhante a uma tabela contínua, portanto, a filtragem de nome de arquivo ocultaria PID.
findstr /c:pid: /c:<filename>
deve chegar muito perto de ambos os utilitários, emboraAqui podemos ver que gvim.exe é o que está com este arquivo aberto.
fonte
Experimente o Unlocker .
O site Unlocker tem um gráfico bacana (role para baixo depois de seguir o link) que mostra uma comparação com outras ferramentas. Obviamente, essas comparações costumam ser tendenciosas, já que normalmente são escritas pelo autor da ferramenta, mas o gráfico pelo menos lista as alternativas para que você possa experimentá-las por si mesmo.
fonte
Se o arquivo for um .dll, você poderá usar o aplicativo de linha de comando TaskList para ver quem o abriu:
fonte
Existe um programa "OpenFiles", parece fazer parte do windows 7. Parece que pode fazer o que quiser. Ele pode listar arquivos abertos por usuários remotos (por meio de compartilhamento de arquivos) e, após chamar "openfiles / Local on" e reiniciar o sistema, deve ser capaz de mostrar os arquivos abertos localmente. O último é dito ter penalidades de desempenho.
fonte
Se você clicar com o botão direito do mouse no ícone "Computador" (ou "Meu Computador") e selecionar "Gerenciar" no menu pop-up, isso o levará ao console de Gerenciamento do Computador.
Lá, em Ferramentas do sistema \ Pastas compartilhadas, você encontrará "Arquivos abertos". Provavelmente, isso é quase o que você deseja, mas se o arquivo estiver em um compartilhamento de rede, você precisará fazer a mesma coisa no servidor em que o arquivo está.
fonte
Use o Process Explorer para encontrar o id do processo. Em seguida, use o Handle para descobrir quais arquivos estão abertos.
Por exemplo, lidar com -p
Gosto dessa abordagem porque você está usando utilitários da própria Microsoft.
fonte
Em OpenedFilesView , no menu Opções, há um item de menu denominado "Mostrar arquivos de rede". Talvez com isso habilitado, o utilitário mencionado seja de alguma utilidade.
fonte