Different ways to check for remotely open files
Sunt foarte multe cazuri cand doresti sa verifici daca anumite fisiere sunt deschise de catre un client remote, si cel mai bun exemplu ar fi atunci cand se pregateste o operatiune de mentananta a unui server. Pot fi si alte scenarii dar nu intram in detalii. Mai bine sa vedem care sunt metodele prin care detectam cine acceseaza fisiere de pe serverul nostru.
Cea mai simpla metoda si cea mai cunoscuta este prin consola Computer management:
Nota:In Windows 2008 R2 trebuie sa va duceti in Share and storage management si din Actions sa selectati Open Files.
Lucrurile astea merg foarte simplu atunci cand ai un singur server si nu e nevoie sa colectezi date sau sa automatizezi niste taskuri.
Exista totusi metode (cam obscure zic eu) prin care poti sa afli informatiile astea din linie de comanda.
Prima varianta ce imi vine in minte ar fi NET FILES:
Urmatoarea varianta ar fi cu OPENFILES (vine cu Windows-ul):
Avantajul lui OPENFILES este ca poate interoga servere remote si poate exporta informatiile in CSV (deci puteti colecta informatiile de pe mai multe servere iar apoi le puteti consolida).
Mai mult decat atat, OPENFILES poate afisa si fisierele deschise local (trebuie activat inainte cu OPENFILES /LOCAL ON iar serverul trebuie rebootat; poate afecta performanta serverului; util doar in anumite scenarii de troubleshooting):
Nota: daca vreti sa vedeti ce fisiere sunt deschise local va recomand sa folositi mai bine Handle sau Process Explorer.
Iar ultima varianta ce imi vine acum in minte este Get-SmbOpenFile (cred ca minimul disponibil este Windows 2012 R2 sau Windows 8.1):
Nota: A nu se confunda cu Get-SMBConnection ce enumera doar sesiunile.
De retinut ca toate variantele din linie de comanda enumerate mai sus au nevoie de drepturi elevate de admin.
Probabil ca mai sunt si alte metode, dar acestea imi sunt cunoscute mie si suficiente pentru a-mi face treaba.