Scopri chi sta bloccando un file su una condivisione di rete


141

Voglio sapere chi sta bloccando un file su una condivisione di rete.

Ecco il problema: la condivisione di rete è su un NAS, quindi non riesco ad accedere. Ho bisogno di uno strumento per scoprire da remoto chi sta bloccando il file. Non è pratico riavviare il NAS ogni volta, perché ci sono diversi utenti.

Handle.exe , Process Explorer e PsFile sembrano essere limitati ai file sul computer locale, quindi non funzionano per me.

Risposte:


172

Nel caso in cui qualcuno cerchi una soluzione a questo per un sistema basato su Windows o NAS:

Esiste una funzione integrata in Windows che mostra quali file sul computer locale sono aperti / bloccati dal computer remoto (che ha il file aperto tramite una condivisione file):

  • Seleziona "Gestisci computer" (Apri "Gestione computer")
  • fai clic su "Cartelle condivise"
  • scegli "Apri file"

Lì puoi persino chiudere il file con forza.


10
Puoi anche usare Azione -> Connetti a un altro computer al file su un NAS, e funziona anche con il nostro NAT basato su Linux! Perché non l'ho provato prima?
Olorin,

20
Su Windows 2008 R2 vai su Server Manager> Ruoli> Servizi file> Gestione condivisione e archiviazione> fai clic destro su SaSM> Gestisci file aperti.
Jason Pearce,

Basta aprire una console MMC e aggiungere uno snap-in Cartelle condivise. È possibile connettersi a sistemi remoti.
nizx,

2
Per una condivisione di dominio, questo non ha funzionato. La formulazione sembra implicare i file presenti nelle condivisioni di rete.
Kevin Inf

1
Per fare ciò ho usato un'applicazione chiamata Unlocker (il file era sul NAS). L'app è qui: filehippo.com/download_unlocker/tech e ha funzionato per me ma non posso garantire per questa app
Dan

58

Sui server Windows 2008 R2 hai due modi per visualizzare quali file sono aperti e chiudere quelle connessioni.

Tramite Share and Storage Management

Server Manager> Ruoli> Servizi file> Gestione condivisione e archiviazione> fai clic con il pulsante destro del mouse su SaSM> Gestisci file aperto

Tramite OpenFiles

CMD> Openfiles.exe / query / s SERVERNAME

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


2
Bella risposta. Non sapevo di Openfiles; funziona molto meglio che dover usare psexec o strumenti remoti simili.
twasbrillig,

@twasbrillig ok ma se si tratta di un NAS e non basato su Windows! C: \> Openfiles.exe / query / s 10.0.0.1 <ENTER> ERRORE: il sistema di destinazione deve eseguire Windows XP o versioni successive.
barlop,

Vale la pena notare che i nodi "Ruoli" ecc. Si espandono con ritardo.
SerG,

Grazie a questo, openfiles.exe funziona anche su Windows Server 2012 R2. Non sono riuscito a trovare altre buone guide su come elencare i file aperti da un server 2012, ma questo ha funzionato.
Oldskool,

Bel comando CMD, grazie per la condivisione! Windows 10 Enterprise viene fornito con Openfiles.exe immediatamente.
Leo Gurdian,

25

PsFile funziona su macchine remote. Se il mio account di accesso ha già accesso alla condivisione remota, posso semplicemente inserire:

psfile \\remote-share

(sostituisci "remote-share" con il nome del tuo file server) ed elencherà tutti i documenti aperti su quella condivisione, insieme a chi lo ha aperto e l'ID file se voglio forzare la chiusura del file. Per me, questa è una lista davvero lunga, ma può essere ridotta inserendo una parte di un percorso:

psfile \\remote-share I:\\Human_Resources

Questo è un po 'complicato, poiché nel mio caso questa condivisione remota è montata come Z: sul mio computer locale, ma psfile identifica i percorsi come sono definiti sul file server remoto, che nel mio caso sono io: (il tuo sarà diverso) . Ho dovuto solo esaminare i risultati della mia prima corsa psfile per vedere alcuni dei percorsi che ha restituito e quindi eseguirlo di nuovo con un percorso parziale per restringere i risultati.

Facoltativamente, PsFile ti consentirà di specificare le credenziali per la condivisione remota se è necessario fornirle per l'accesso.

Infine, un suggerimento poco noto: se qualcuno fa clic su un file in Esplora risorse e taglia o copia il file con l'intento di incollarlo da qualche altra parte, tale atto pone anche un blocco sul file.


si suppone che ci siano double \ s?
PsychoData

@PsychoData, è passato un po 'di tempo da quando l'ho pubblicato. Spero che ciò che ho pubblicato sia corretto. Il \\ prima della parte di condivisione remota sembra giusto, ma il \\ in I: \\ Human_Resources sembra strano. Tuttavia, penso di aver avuto una ragione per questo quando ho pubblicato. Provalo e fammi sapere.
Baodad,

14

Se si tratta semplicemente di sapere / vedere chi si trova in un file in un determinato momento (e se si utilizza Windows) basta selezionare il file "visualizza" come "dettagli", ovvero anziché miniature, riquadri o icone ecc. nella vista 'dettagli', per impostazione predefinita ti verrà mostrato; - Nome file - Dimensioni - Tipo e - Data modificata

Tutto quello che devi fare ora è fare clic con il pulsante destro del mouse in qualsiasi punto della barra degli strumenti (nome del file, dimensione, tipo ecc ...) e ti verrà fornito un elenco di altre opzioni che la barra degli strumenti può visualizzare.

Seleziona "Proprietario" e una nuova colonna mostrerà il nome utente della persona che utilizza il file o chi lo ha originariamente creato se nessun altro lo sta utilizzando.

Ciò può essere particolarmente utile quando si utilizza un database MS Access condiviso.


4
Nel mio caso non ha funzionato. Aggiungo la colonna e mi vedo come il creatore del file condiviso nella risorsa remota, ma era già bloccato da un compagno di lavoro.
David Oliván Ubieto,

5
Funziona davvero bene solo quando il programma in cui si trova crea un file di blocco (come MS Access) che sarà di proprietà di chiunque lo stia utilizzando e non del creatore originale del file
PsychoData

1
Per salvare l'aggiunta della colonna, puoi visualizzare le stesse informazioni se visualizzi le proprietà del file e guardi la scheda Dettagli.
Malvineous,

Funziona davvero bene per cose come i file MS Word.
Tridus,

5

Le sessioni sono gestite dal dispositivo NAS. Quello che stai chiedendo dipende dal dispositivo NAS e niente a che fare con Windows. Dovresti dare un'occhiata al tuo firmware NAS per vedere cosa supporta. L'unico altro modo è annusare i pacchetti e risolverli da soli.


Bene, questa è una buona risposta con buon senso. Purtroppo questo NAS non offre questa funzionalità.
Olorin,

5

Risposta parziale: con Process Explorer, è possibile visualizzare gli handle su una condivisione di rete aperta dal computer .

Utilizzare il menu "Trova maniglia" e quindi è possibile digitare un percorso come questo

\Device\LanmanRedirector\server\share\

2

sembra che tu abbia lo stesso problema che ho provato a risolvere qui . nel mio caso, è un file server Linux (che esegue samba, ovviamente), quindi posso accedere e vedere quale processo sta bloccando il file; sfortunatamente, non ho trovato il modo di chiuderlo senza uccidere la sessione responsabile. AFAICT, il client Windows "pensa" che sia chiuso; ma non si è preoccupato di dirlo al fileserver.


Sembra probabile: per quanto ne so il nostro NAS ha usato una distribuzione Linux personalizzata.
Olorin,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.