Come visualizzare, gestire e chiudere i file aperti sul file server di Windows

Gli amministratori dei file server Windows devono spesso forzare la chiusura dei file condivisi aperti dagli utenti. Questa attività viene visualizzata quando più utenti lavorano contemporaneamente con lo stesso file. Spesso, se il software non funziona correttamente o la sessione viene chiusa in modo errato dall’utente, spesso accade che i file nella cartella condivisa siano ancora aperti (e bloccati) e che altri utenti non possano modificarli. In questo articolo mostreremo come ottenere l’elenco dei file aperti sul file server (con Windows Server 2012 R2), scoprire quale utente ha bloccato un file su una cartella condivisa e chiudere (ripristinare) queste sessioni di file.

Come visualizzare l’elenco dei file aperti su Windows Server

È possibile ottenere l’elenco dei file aperti dagli utenti sul file server Windows utilizzando la console grafica integrata di Gestione computer (compmgmt.msc).

Apri lo snap-in Gestione computer sul tuo file server (o connettiti al server in remoto dalla console di gestione in esecuzione sul tuo computer) e vai su Strumenti di sistema -> Cartelle condivise -> Apri file. L’elenco dei file aperti sul server remoto viene visualizzato sul lato destro della finestra. L’elenco contiene il percorso locale di un file, il nome dell’account utente che apre il file, il numero di blocchi e la modalità di apertura del file (Leggi o Scrivi + Leggi).

Puoi ottenere lo stesso elenco di file aperti utilizzando lo strumento console incorporato – Openfiles . Ad esempio, utilizzando il seguente comando è possibile ottenere l’ID sessione, il nome utente e il percorso locale completo del file aperto:

Openfiles /Query /fo csv |more

Se un utente accede a una cartella o a un file nella cartella condivisa sul server in remoto utilizzando il protocollo SBM, viene creata una nuova sessione che determina la connessione per l’utente. Le connessioni utente sono gestite tramite gli ID di sessione.

Puoi eseguire lo stesso comando da remoto. Ad esempio, è necessario mostrare un elenco di file aperti sul file server lon-fs01:

Openfiles /Query /s lon-fs01 /fo csv

Il comando Openfiles ha un’altra utile funzione per visualizzare l’elenco dei file aperti localmente. Per utilizzarlo, abilitare l’opzione Mantieni elenco oggetti utilizzando il comando: openfiles /local one riavviare il server. Successivamente, i file aperti dai processi locali verranno aggiunti all’elenco dei file aperti (si consiglia di utilizzare questa modalità solo a scopo di debug, poiché può influire negativamente sulle prestazioni del server).

Come rilevare un utente che ha aperto un file

Per rilevare un utente che ha aperto (bloccato) il file nomefile.docx sul server, eseguire questo comando:

Openfiles /Query /s lon-fs01 /fo csv | find /i "filename.docx"

La chiave / i viene utilizzata per effettuare ricerche di file senza distinzione tra maiuscole e minuscole.

Ovviamente, puoi specificare solo una parte del nome del file. Ad esempio, devi sapere chi ha aperto un file XLSX contenente “salereport” nel suo nome, quindi usa la seguente pipe:

Openfiles /Query /s lon-fs01 /fo csv | find /i "salereport"| find /i "xlsx"

Ovviamente puoi trovare questo file nella GUI di Gestione computer, ma è meno conveniente (questa console non fornisce funzionalità di ricerca).

Come forzare la chiusura di un file condiviso aperto

Per chiudere un file aperto, trovalo nell’elenco dei file nella sezione Apri file e seleziona Chiudi file aperto nel menu contestuale.

Se ci sono centinaia di file aperti sul tuo file server, non sarà facile trovare il file specifico nella console. È più conveniente usare lo strumento Openfiles . Come abbiamo già detto, restituisce l’ID di sessione del file aperto. Utilizzando questo ID sessione è possibile forzare la chiusura del file ripristinando la connessione. Trova l’ID del file che ti serve:

Openfiles /Query /s lon-fs01 /fo csv | find /i "farm"| find /i ".xlsx"

Disconnetti l’utente dal file utilizzando l’ID ricevuto:

Openfiles /Disconnect /s lon-fs01 /ID 617909089

Come chiudere i file aperti in remoto usando PowerShell

Nuovi cmdlet per la gestione di condivisioni e file su un server SMB sono stati visualizzati in PowerShell per Windows Server 2012 / Windows 8. Questi cmdlet possono essere utilizzati per ripristinare in remoto le connessioni su un file aperto.

È possibile ottenere l’elenco dei file aperti utilizzando Get-SMBOpenFile e chiudere un file (ripristinare una connessione) utilizzando Close-SmbOpenFile .

Quindi, connettiamoci a un server remoto:

$sessn = New-CIMSession –Computername lon-fs01

Trova e chiudi il file aperto pubs.docx usando un singolo comando:

Get-SMBOpenFile -CIMSession $sessn | where {$_.Path –like "*pubs.docx"} | Close-SMBOpenFile -CIMSession $sessn

Conferma la chiusura del file premendo Y.

Per rimuovere la conferma forzata della chiusura di un file su un file server, utilizzare la chiave -Force.

Questi comandi possono essere utilizzati, ad esempio, per chiudere tutti i file aperti da un determinato utente (un utente è tornato a casa e non ha rilasciato i file). Ad esempio, per ripristinare tutte le sessioni di file dell’utente mjenny, eseguire questo comando:

Get-SMBOpenFile -CIMSession $sessn | where {$_.ClientUserName –like "*mjenny*"}|Close-SMBOpenFile -CIMSession $sessn

Leave a Reply

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

Rispettiamo la tua privacy!

Su questo sito utilizziamo strumenti nostri o di terze parti che memorizzano piccoli file (cookie) sul tuo dispositivo. I cookie sono normalmente usati per permettere al sito di funzionare correttamente (cookie tecnici), per generare statistiche di uso/navigazione (cookie statistici) e per pubblicizzare opportunamente i nostri servizi/prodotti (cookie di profilazione). Possiamo usare direttamente i cookie tecnici, ma hai il diritto di scegliere se abilitare o meno i cookie statistici e di profilazione. Abilitando questi cookie, ci aiuti ad offrirti una esperienza migliore con noi.

Cookie policy