Uma coisa que me incomoda no Windows é o antigo erro de violação de compartilhamento . Muitas vezes você não consegue identificar o que está mantendo aberto. Normalmente, é apenas um editor ou explorador apenas apontando para um diretório relevante, mas às vezes eu tive que recorrer à reinicialização da minha máquina.
Alguma sugestão sobre como encontrar o culpado?
windows
file-sharing
cleto
fonte
fonte
Respostas:
Eu tive sucesso com o Sysinternals Process Explorer . Com isso, você pode procurar para descobrir quais processos têm um arquivo aberto e pode usá-lo para fechar os identificadores, se desejar. Obviamente, é mais seguro fechar todo o processo. Tenha cuidado e julgamento.
Para encontrar um arquivo específico, use a opção de menu
Find->Find Handle or DLL...
Digite parte do caminho para o arquivo. A lista de processos será exibida abaixo.Se você preferir a linha de comando, o pacote Sysinternals inclui a ferramenta de linha de comando Handle , que lista os identificadores abertos. Alguns exemplos de como usá-lo:
c:\Program Files\SysinternalsSuite>handle.exe |findstr /i e:\
- encontre todos os arquivos abertos na unidade E:c:\Program Files\SysinternalsSuite>handle.exe |findstr /i file-or-path-in-question
fonte
Você pode usar o Monitor de recursos para este que vem built-in com o Windows 7, 8 e 10.
Quando você encontrar o identificador, poderá identificar o processo observando a coluna Imagem e / ou PID.
Você pode tentar fechar o aplicativo como faria normalmente ou, se isso não for possível, basta clicar com o botão direito do mouse no identificador e interromper o processo diretamente a partir daí. Mole-mole!
Copiado da minha resposta original: https://superuser.com/a/643312/62
fonte
resmon
diretamente do cmdExperimente o comando openfiles .
fonte
openfiles /local on
e reiniciando. Isso torna esse recurso não muito útil.Apenas tenha muito cuidado ao fechar alças; é ainda mais perigoso do que você imagina, por causa da reciclagem de identificadores - se você fechar o identificador de arquivo e o programa abrir outra coisa, esse identificador de arquivo original que você fechou poderá ser reutilizado para esse "outro item". E agora adivinhe o que acontece se o programa continuar, pensando que está funcionando no arquivo (cujo identificador você fechou), quando na verdade esse identificador de arquivo agora está apontando para outra coisa.
ver a publicação de Raymond Chen sobre este tópico
fonte
Eu usei o Handle com sucesso para encontrar esses processos no passado.
fonte
O Lockhunter ( http://lockhunter.com/ ) funciona em sistemas de 32 e 64 bits.
fonte
Who Lock Me funciona bem e mantém as pessoas divertidas com o nome!
fonte
Apenas para esclarecer, é mais provável que isso ocorra com o mau comportamento de aplicativos de terceiros que não usem a chamada da API CreateFile corretamente do que com qualquer coisa no próprio Windows. Talvez seja uma conseqüência do design do CreateFile, mas está feito e não podemos voltar atrás.
Basicamente, ao abrir um arquivo em um programa Windows, você tem a opção de especificar um sinalizador que permita acesso compartilhado. Se você não especificar o sinalizador, o programa terá acesso exclusivo ao arquivo.
Agora, se o Explorer parece ser o culpado aqui, pode ser o caso disso, e que o verdadeiro culpado é algo que instala uma extensão do shell que abre todos os arquivos em uma pasta para seus próprios fins, mas também é entusiasta em fazê-lo, ou que não limpa adequadamente depois de si. O Symantec AV é algo que já vi fazer isso antes, e não ficaria surpreso se outros programas AV também fossem culpados. Os plug-ins de controle de origem também podem estar com defeito.
Portanto, não é realmente uma resposta, mas apenas alguns conselhos para nem sempre culpar o Windows pelo que pode ser um programa de terceiros mal escrito (algo que também pode acontecer em qualquer outro sistema operacional com bloqueio implícito de arquivos, mas qualquer sistema operacional baseado em unix tem acesso compartilhado por padrão).
fonte
Em um servidor remoto, quando você está verificando um compartilhamento de rede, algo tão simples quanto o console de Gerenciamento do Computador pode exibir essas informações e fechar o arquivo.
fonte
Apropos Explorer, mantendo um arquivo aberto: "Quando isso acontece em um arquivo que você precisa excluir, você pode forçar o manuseio fechado ou reiniciar".
Você pode finalizar o Explorer.
Se isso é algo único (o Explorer normalmente não mantém esse arquivo aberto), acho que fazer logoff e fazer logon novamente farão o truque.
Caso contrário, mate o processo do Desktop Explorer e faça o que quiser enquanto estiver ausente. Primeiro, inicie uma cópia do cmd.exe (você precisa de uma interface do usuário para fazer a limpeza pretendida). Verifique se não há Exploradores que não sejam da área de trabalho em execução. Em seguida, mate o último Explorer com, por exemplo, o Gerenciador de tarefas. Faça o que quiser no prompt de comando. Por fim, execute o Explorer no prompt de comando e ele se tornará a área de trabalho.
Eu acho que pode haver algum desagrado residual se alguns programas systray não puderem lidar com o reinício do shell.
fonte
Os arquivos podem ser bloqueados por processos locais (o unlocker é a ferramenta a ser usada) e pelo acesso a arquivos provenientes de compartilhamentos.
Há uma função interna no Windows que mostra quais arquivos no computador local estão abertos / bloqueados pelo computador remoto (que tem o arquivo aberto por meio de um compartilhamento de arquivo):
Lá você pode até fechar o arquivo com força.
fonte
Também existe a exibição de arquivos abertos do NirSoft .
fonte
Com o Process Hacker, você pode identificar quais processos estão mantendo seus arquivos facilmente:
fonte
As respostas acima votadas abrangem situações em que um processo do programa está mantendo o identificador de arquivo aberto, o que (felizmente) é na maioria das vezes - no entanto, em alguns casos (como está ocorrendo neste sistema no momento), o próprio sistema mantém um identificador de arquivo abrir.
Você pode identificar essa situação seguindo as instruções para localizar o processo de retenção de identificador de arquivo com o explorador de processos acima e observando que o nome do processo está listado como 'sistema' ou seguindo as instruções usando o monitor de recursos e observando que nenhuma imagem é mostrada ter um identificador de arquivo aberto no seu arquivo de interesse (embora, obviamente, algo faça como você não pode editar / excluir, etc.).
Se isso acontecer, sua opção (até onde sei) é reiniciar - ou esqueça de fazer qualquer coisa com esse arquivo.
fonte
Há algum tempo, fiquei ligado ao Exteneded Task Manager pelo blog de Jeremy Zawodny, e é ótimo para rastrear mais informações sobre processos também. +1 para o Process Explorer, como acima, também, especialmente para eliminar processos que o Gerenciador de tarefas padrão não terminará.
fonte
Existe uma ferramenta FILEMON e mostra arquivos e identificadores abertos. É difícil acompanhar a exibição, se você assistir ao vivo, o faz rapidamente. Mas você pode impedir a exibição ao vivo e assistir a todas as atividades de abertura / gravação de arquivos. Agora de propriedade da Microsoft, mas originalmente da Sysinternals
fonte