File di rete bloccato. Da chi ?

mercoledì 17 maggio 2006 - 17.21

stefanoZaninelli Profilo | Newbie

Qualcuno mi saprebbe dire se esiste una classe, un oggetto, delle API o altro che mi dia la possibilità di sapere il nome o i nomi degli utenti che bloccano un file di rete ?

Grazie

Brainkiller Profilo | Guru

>Qualcuno mi saprebbe dire se esiste una classe, un oggetto, delle
>API o altro che mi dia la possibilità di sapere il nome o i nomi
>degli utenti che bloccano un file di rete ?

Mai visto niente di simile.
La vedo come una cosa abbastanza improbabile anche perchè già è abbastanza raro che più utenti cerchino di accedere allo stesso file. Se succede evidentemente si è studiata una configurazione di rete errata e sono stati educati male gli utenti.

In ogni caso prova ad are un'occhiata a questo software, che segnala i processi che tengono i lock sui file ed eventualmente elimina con una forzatura il lock:
http://ccollomb.free.fr/unlocker/
ciao

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

stefanoZaninelli Profilo | Newbie

Il problema è che io devo aggiornare un eseguibile perchè ho fatto delle modifiche ad un programma e mi trovo il file bloccato perchè in uso dagli utenti e vorrei sapere quali sono senza dover aprire per forza la console "D:\WINDOWS\system32\fsmgmt.msc" la quale mi fornisce il dato, ma risulta un pò macchinosa da consultare. Quindi volevo fare un programmino mio più veloce e diretto sul file interessato.
Il codice c'è per forza perchè lo usa la console sopra citata.

Grazie comunque

Brainkiller Profilo | Guru

>Il problema è che io devo aggiornare un eseguibile perchè ho
>fatto delle modifiche ad un programma e mi trovo il file bloccato
>perchè in uso dagli utenti e vorrei sapere quali sono senza dover
>aprire per forza la console "D:\WINDOWS\system32\fsmgmt.msc"
>la quale mi fornisce il dato, ma risulta un pò macchinosa da
>consultare. Quindi volevo fare un programmino mio più veloce
>e diretto sul file interessato.

Hai ragione.

L'uso del comando NET FILE non ti va bene ?
Con questo comando puoi chiudere anche i file come faresti tramite console, solo che puoi farlo da command line con uno script.

Ciao

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

stefanoZaninelli Profilo | Newbie

Il comando NET FILE funziona solo se lanciato da server purtroppo.

Brainkiller Profilo | Guru

>Il comando NET FILE funziona solo se lanciato da server purtroppo.

Ciao Stefano,
allora prova a guardarti questa API:

NetFileGetInfo
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/stgmgmt/fs/netfileenum.asp

che può ritornare una struttura di tipo FILE_INFO_3 che contiene i locks e quale utente ha aperto il file:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/stgmgmt/fs/netfileenum.asp

Nella NetFileGetInfo è possibile specificare anche il Server su cui aprire il file.

ciao


David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5