Administratori Windows datoteka datoteka često moraju prisiljavati korisnike da zatvore datoteke koje su otvorili korisnici. Takav problem nastaje kada nekoliko korisnika istovremeno radi s jednom datotekom. Često, ako softver ne radi ispravno ili korisnik ispravno dovrši sesiju, datoteke u mrežnoj mapi izgledaju kao da su otvorene i zaključane, a drugi korisnici ne mogu u nju izvršiti promjene. U ovom ćemo članku pokazati kako dobiti popis otvorenih datoteka na datotečnom poslužitelju, saznati koji korisnici ih koriste i kako resetirati te sesije datoteka..
sadržaj:
- Popis otvorenih datoteka na Windows datotečnom poslužitelju
- Kako odrediti koji je korisnik otvorio datoteku
- Kako zatvoriti otvorenu datoteku
- Kako na daljinu zatvoriti otvorene datoteke pomoću PowerShell-a
Popis otvorenih datoteka na Windows datotečnom poslužitelju
Popis datoteka koje su korisnici otvorili na Windows datotečnom poslužitelju može se dobiti pomoću standardne grafičke konzole Upravljanje računalom (Upravljanje računalom - compmgmt.msc).
Pokrenite konzolu Computer Management na datotečnom poslužitelju (ili je na daljinu povežite pomoću konzole s računalom) i idite na odjeljak Alat za sustav -> Dijeljene mape -> Otvori datoteke (Uslužni programi -> Zajedničke mape -> Datoteke otvorene). Na desnoj strani prozora prikazan je popis datoteka na daljinskom otvaranju. Popis sadrži lokalni put do datoteke, naziv korisničkog računa, broj zaključavanja i način na koji je datoteka otvorena (Read or Write + Read).
Isti popis otvorenih datoteka može se dobiti pomoću ugrađenog uslužnog programa konzole Openfiles. Na primjer, pomoću sljedeće naredbe možete dobiti id sesije, korisničko ime i puni lokalni put do otvorene datoteke:
Openfiles / Upit / za csv | more
Ista naredba može se izvršiti na daljinu, na primjer, trebate popis otvorenih datoteka na datotečnom poslužitelju mskfs01:
Openfiles / Upit / s mskfs01 / fo csv
openfiles / lokalni na
i ponovno pokrenite poslužitelj. Nakon toga, datoteke otvorene lokalnim procesima počet će dolaziti na popis (ovaj se način preporučuje koristiti samo za uklanjanje pogrešaka, jer može negativno utjecati na performanse poslužitelja).Kako odrediti koji je korisnik otvorio datoteku
Da biste identificirali korisnika koji je otvorio (zaključao) datoteku cons.adm na poslužitelju pokrenite naredbu:
Openfiles / Upit / s mskfs01 / fo csv | pronađi / i "cons.adm"
Prirodno, možete odrediti samo dio imena datoteke. Na primjer, moramo saznati tko je otvorio xlsx datoteku, čije je ime farma linija, koristimo ovaj cjevovod:
Openfiles / Upit / s mskfs01 / fo csv | pronađi / i "farma" | pronađi / i "xlsx"
Datoteku možete, naravno, pronaći u grafičkoj konzoli Computer Management, ali to je manje zgodno (konzola ne pruža mogućnost pretraživanja).
Kako zatvoriti otvorenu datoteku
Da biste zatvorili otvorenu datoteku, morate je pronaći na popisu datoteka u odjeljku Otvori datoteku i odaberite "Zatvori otvorenu datoteku".
Ako na poslužitelju datoteka postoji stotine otvorenih datoteka, njihovo pronalaženje u konzoli neće biti lako. Pogodnije je koristiti uslužni program Openfiles. Kao što smo već rekli, vraća ID sesije otvorene datoteke. Upravo se za ovaj ID sesije datoteka može prisilno zatvoriti vraćanjem veze. Pronađite ID željene datoteke:
Openfiles / Upit / s mskfs01 / fo csv | pronađi / i "farma" | pronađi / i ".xlsx"
Isključujemo korisnika od njega prema primljenom identifikatoru:
Openfiles / Disconnect / s mskfs01 / ID 67109098
Kako na daljinu zatvoriti otvorene datoteke pomoću PowerShell-a
U sustavu Windows Server 2012 / Windows 8, PowerShell predstavio cmdlete za rad s kuglicama i datotekama na SMB poslužitelju. Ovi cmdleti se mogu koristiti za daljinsko resetiranje veza s otvorenom datotekom..
Popis otvorenih datoteka može se dobiti pomoću Get cmdleta.-SMBOpenFile , i zatvorite datoteku (resetirajte vezu) sa Close-SmbOpenFile.
Dakle, spajamo se na udaljeni poslužitelj:
$ sessn = Novo-CIMSession -Kompjutersko ime mskfs01
Pronađite i zatvorite otvorenu datoteku pubs.docx s jednom naredbom:
Get-SMBOpenFile -CIMSession $ sessn | gdje je $ _. Path "* pubs.docx" | Zatvori-SMBOpenFile -CIMSession $ sessn
Potvrdite zatvaranje datoteke pritiskom na Y.
Da biste uklonili potvrdu prisilnog zatvaranja datoteke na poslužitelju, koristite prekidač -ForceNa primjer, iste naredbe mogu se koristiti za zatvaranje svih datoteka koje je otvorio neki korisnik (korisnik je otišao kući i nije ih pustio). Na primjer, za resetiranje svih sesija datoteka za ipivanov, učinite
Get-SMBOpenFile -CIMSession $ sessn | gdje je $ _. ClientUserName -like "* ipivanov *" | Close-SMBOpenFile -CIMSession $ sessn