2009-02-24 9 views
110

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

Ecco il problema: la condivisione di rete si trova 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 sembra essere limitato ai file sul computer locale, quindi non funzionano per me.

risposta

141

Solo nel caso qualcuno alla ricerca di una soluzione a questo per un sistema basato su Windows o NAS:

Ci è una funzione built-in in Windows che mostra quali file sul computer locale sono aperti/bloccato da computer remoto (che ha il file aperto attraverso una condivisione di file):

  • selezionare "Gestione Computer" (Open " C omputer Management ")
  • click "cartelle condivise"
  • scegliere "Apri file"

Ci si può anche chiudere il file con forza.

+10

Puoi anche usare Azione -> Connetti a un altro computer sul file su un NAS, e funziona anche con il nostro NAT basato su Linux! Perché non ci ho provato prima? – olorin

+17

In Windows 2008 R2 andare su Server Manager> Ruoli> Servizi file> Gestione condivisione e archiviazione> fare clic con il pulsante destro del mouse su SaSM> Gestisci file aperti. –

+0

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

3

Le sessioni vengono gestite dal dispositivo NAS. Quello che stai chiedendo dipende dal dispositivo NAS e nulla 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 risolverlo da solo.

+0

Bene, questa è una buona risposta con buonsenso. Purtroppo questo NAS non offre questa funzionalità. – olorin

2

sembra che tu abbia lo stesso problema che ho provato a risolvere here. nel mio caso, è un fileserver Linux (in esecuzione 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 dire al fileserver.

+0

Suoni probabili: per quanto ne so il nostro NAS ha usato una distro Linux personalizzata. – olorin

5

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

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

\Device\LanmanRedirector\server\share\ 
12

Se si tratta semplicemente di sapere/vedere chi è in un file in un determinato momento (e se si sta utilizzando Windows) basta selezionare il file 'vista' come 'dettagli', cioè piuttosto che Miniature, tessere o icone ecc. Una volta nella vista 'dettagli', per impostazione predefinita verrai mostrato; Nome file - - Dimensioni - Tipo e - data di modifica

Tutto quello che dovete fare ora è fare clic destro in qualsiasi punto lungo detto barra degli strumenti (il nome del file, dimensione, tipo, ecc ...) e vi sarà dato un elenco di altre opzioni che possono essere visualizzate dalla barra degli strumenti.

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

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

+0

Super vecchio, e un trucco che già conoscevo ma che avevo dimenticato. Ma questo era un modo ingegnoso, semplice, veloce ed ESATTAMENTE quello che speravo. – user2140261

+2

Nel mio caso non ha funzionato. Aggiungo la colonna e vedo me stesso come il creatore del file condiviso nella risorsa remota, ma è stato bloccato già da un compagno di lavoro. –

+3

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

44

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

Via Gestione condivisione e archiviazione

Server Manager> Ruoli> File Services> Gestione condivisione e archiviazione> tasto destro del mouse sul SASM> Gestisci Apri file

Via OpenFiles

CMD > Openfiles.exe/query/s SERVERNAME

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

+2

Ottima risposta. Non sapevo di Openfiles; funziona molto meglio di dover usare psexec o strumenti remoti simili. – twasbrillig

+0

@twasbrillig ok ma se si tratta di un NAS, e non basato su Windows! C: \> Openfiles.exe/query/s 10.0.0.1 ERRORE: il sistema di destinazione deve essere in esecuzione Windows XP o successivo. – barlop

+0

Vale la pena notare che i nodi "Ruoli" ecc si espande con ritardo. – SerG

17

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

psfile \\remote-share 

(sostituire "remote-condividere" con il nome del file server) ed elencare ogni documento aperto su quella condivisione, insieme a chi lo ha aperto e l'ID del file se voglio forzare la chiusura del file. Per me, questo è davvero un lungo elenco, ma può essere ridotto inserendo parte di un percorso:

psfile \\remote-share I:\\Human_Resources 

Ciò è genere di difficile, dal momento che nel mio caso questa condivisione remota è montato come Z: sul mio macchina locale, ma psfile identifica i percorsi così come sono definiti sul file server remoto, che nel mio caso è I: (il tuo sarà diverso). Ho dovuto semplicemente sfogliare i risultati della mia prima esecuzione di psfile per vedere alcuni dei percorsi restituiti e quindi eseguirlo di nuovo con un percorso parziale per restringere i risultati.

Opzionalmente, PsFile consente 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.

+0

ci sono supposti per essere doppio \ s? – PsychoData

+0

@PsychoData, è passato un po 'di tempo da quando l'ho postato. Spero che quello che ho postato sia corretto. Il \\ prima della parte di condivisione remota sembra corretta, ma \\ in I: \\ Human_Resources sembra strano. Comunque, penso di averne una ragione quando ho postato. Provalo e fammi sapere. – Baodad

+1

Wow, prendi un +1 per l'ultimo suggerimento. ;) Stavo cercando di rinominare una cartella di rete e apparentemente c'era ancora qualche copia "in corso" che avevo fatto prima su un'altra macchina ... E selezionare un file da copiare all'esterno di quella cartella stava facendo il trucco per me. – Inarion

Problemi correlati