Descubra quem está bloqueando um arquivo em um compartilhamento de rede

141

Quero saber quem está bloqueando um arquivo em um compartilhamento de rede.

Aqui está o problema: o compartilhamento de rede está em um NAS, então não consigo fazer logon. Preciso de uma ferramenta para descobrir remotamente quem está bloqueando o arquivo. Não é prático reiniciar o NAS todas as vezes, porque existem vários usuários.

Handle.exe , Process Explorer e PsFile parecem estar limitados a arquivos na máquina local, para que eles não funcionem para mim.

olorina
fonte

Respostas:

172

Apenas no caso de alguém procurar uma solução para isso em um sistema baseado em Windows ou NAS:

Há uma função interna no Windows que mostra quais arquivos no computador local estão abertos / bloqueados pelo computador remoto (que possui o arquivo aberto por meio de um compartilhamento de arquivo):

  • Selecione "Gerenciar computador" (Abra "Gerenciamento do computador")
  • clique em "Pastas compartilhadas"
  • escolha "Abrir arquivos"

Lá você pode até fechar o arquivo com força.

Dirk Paessler
fonte
10
Você pode até usar Ação -> Conectar-se a outro computador no arquivo em um NAS, e até funciona com o nosso NAT baseado em linux! Por que não tentei isso antes?
Olorin 24/09/10
20
No Windows 2008 R2, vá para Gerenciador do Servidor> Funções> Serviços de Arquivo> Gerenciamento de Compartilhamento e Armazenamento> clique com o botão direito do mouse em SaSM> Gerenciar Arquivos Abertos.
Jason Pearce
Basta abrir um console do MMC e adicionar um snap-in de pastas compartilhadas. Você pode se conectar a sistemas remotos.
Nizx
2
Para um compartilhamento de domínio, isso não funcionou. A redação parece implicar arquivos localizados nos seus compartilhamentos de rede.
Kevinf 23/03/16
1
Usei um aplicativo chamado Unlocker para fazer isso (o arquivo estava no NAS). O aplicativo está aqui: filehippo.com/download_unlocker/tech e funcionou para mim, mas eu não posso garantir para este aplicativo
Dan
58

Nos servidores Windows 2008 R2, você tem duas maneiras de visualizar quais arquivos estão abertos e fechar essas conexões.

Via Gerenciamento de compartilhamento e armazenamento

Gerenciador do Servidor> Funções> Serviços de Arquivo> Gerenciamento de Compartilhamento e Armazenamento> clique com o botão direito do mouse em SaSM> Gerenciar Arquivo Aberto

Via OpenFiles

CMD> Openfiles.exe / query / s SERVERNAME

Consulte http://technet.microsoft.com/en-us/library/bb490961.aspx .

Jason Pearce
fonte
2
Ótima resposta. Eu não sabia sobre o Openfiles; funciona muito melhor do que ter que usar o psexec ou ferramentas de controle remoto semelhantes.
precisa saber é o seguinte
@twasbrillig ok, mas se for um NAS, e não baseado no Windows! C: \> Openfiles.exe / query / s 10.0.0.1 <ENTER> ERRO: O sistema de destino deve estar executando o Windows XP ou superior.
barlop 17/05
Vale a pena notar que os nós "Funções" etc se expandem com atraso.
SerG
Obrigado por isso, o openfiles.exe também funciona no Windows Server 2012 R2. Não consegui encontrar outros bons guias sobre como listar os arquivos abertos de um servidor de 2012, mas isso foi o que fez.
precisa saber é o seguinte
Bom comando CMD, obrigado por compartilhar! O Windows 10 Enterprise vem com o Openfiles.exe, pronto para uso.
Leo Gurdian
25

O PsFile funciona em máquinas remotas. Se minha conta de login já tiver acesso ao compartilhamento remoto, basta digitar:

psfile \\remote-share

(substitua "compartilhamento remoto" pelo nome do seu servidor de arquivos) e ele listará todos os documentos abertos nesse compartilhamento, além de quem o abriu e o ID do arquivo, se eu quiser forçar o fechamento do arquivo. Para mim, essa é uma lista muito longa, mas pode ser reduzida ao inserir parte de um caminho:

psfile \\remote-share I:\\Human_Resources

Isso é meio complicado, pois no meu caso esse compartilhamento remoto é montado como Z: na minha máquina local, mas o psfile identifica os caminhos conforme definidos no servidor de arquivos remoto, que no meu caso é eu: (o seu será diferente) . Eu apenas tive que vasculhar os resultados da minha primeira execução do psfile para ver alguns dos caminhos retornados e, em seguida, executá-la novamente com um caminho parcial para restringir os resultados.

Opcionalmente, o PsFile permitirá que você especifique credenciais para o compartilhamento remoto, se precisar fornecê-las para acesso.

Por fim, uma dica pouco conhecida: se alguém clicar em um arquivo no Windows Explorer e recortar ou copiar o arquivo com a intenção de colá-lo em outro lugar, essa ação também bloqueará o arquivo.

Baodad
fonte
é suposto haver o dobro?
PsychoData
@ PsychoData, já faz um tempo desde que publiquei isso. Espero que o que postei esteja correto. O \\ antes da parte do compartilhamento remoto parece certo, mas o \\ em I: \\ Human_Resources parece estranho. Ainda assim, acho que tive uma razão para isso quando publiquei. Experimente e me avise.
Baodad 8/03/2014
14

Se for apenas um caso de conhecer / ver quem está em um arquivo em um determinado momento (e se você estiver usando o Windows), selecione o arquivo 'ver' como 'detalhes', ou seja, em vez de miniaturas, blocos ou ícones, etc. na exibição 'detalhes', por padrão, você será mostrado; - Nome do arquivo - Tamanho - Tipo e - Data da modificação

Tudo o que você precisa fazer agora é clicar com o botão direito do mouse em qualquer lugar da barra de ferramentas (nome do arquivo, tamanho, tipo etc ...) e você receberá uma lista de outras opções que a barra de ferramentas pode exibir.

Selecione 'Proprietário' e uma nova coluna mostrará o nome de usuário da pessoa que está usando o arquivo ou quem o criou originalmente, se mais ninguém o estiver usando.

Isso pode ser particularmente útil ao usar um banco de dados compartilhado do MS Access.

Jones
fonte
4
No meu caso não funcionou. Eu adiciono a coluna e me vejo como o criador do arquivo compartilhado no recurso remoto, mas já estava bloqueado por um colega de trabalho.
David Oliván Ubieto
5
Isso realmente só funciona bem quando o programa que eles estão em cria um arquivo de bloqueio (como o MS Access), que será propriedade de quem o está usando e não o criador original do arquivo
PsychoData
1
Para salvar a adição da coluna, você poderá ver as mesmas informações se visualizar as propriedades do arquivo e olhar na guia Detalhes.
Malvineous
Isso funciona muito bem para coisas como arquivos do MS Word.
Tridus 02/12/19
5

As sessões são tratadas pelo dispositivo NAS. O que você está perguntando depende do dispositivo NAS e nada a ver com o Windows. Você precisaria dar uma olhada no firmware do NAS para ver o que ele suporta. A única outra maneira é cheirar os pacotes e resolvê-lo você mesmo.


fonte
Bem, esta é uma boa resposta com bom senso. Infelizmente, este NAS não oferece essa funcionalidade.
24909 olorin
5

Resposta parcial: Com o Process Explorer, você pode exibir identificadores em um compartilhamento de rede aberto em sua máquina .

Use o menu "Localizar alça" e digite um caminho como este

\Device\LanmanRedirector\server\share\
olorina
fonte
2

Parece que você tem o mesmo problema que tentei resolver aqui . no meu caso, é um servidor de arquivos Linux (executando o samba, é claro), para que eu possa entrar e ver qual processo está bloqueando o arquivo; infelizmente, não encontrei como fechá-lo sem interromper a sessão responsável. AFAICT, o cliente do Windows 'pensa' que está fechado; mas não se incomodou em dizer ao servidor de arquivos.

Javier
fonte
Parece provável: até onde eu sei, nosso NAS usou uma distribuição Linux personalizada.
24909 olorin
1

Feche o arquivo e:\gestion\yourfile.dat, abra por qualquer usuário ( /a *)

openfiles /disconnect /a * /op "e:\gestion\yourfile.dat"

mais em: http://dosprompt.info/commands/openfiles.asp

R.Alonso
fonte