Skrbniki datotečnih strežnikov Windows pogosto morajo uporabnike prisiliti v zapiranje datotek, ki jih odprejo uporabniki. Tak problem nastane, ko več uporabnikov hkrati dela z eno datoteko. Če programska oprema ne deluje pravilno ali uporabnik sejo pravilno zaključi, se zdi, da so datoteke v omrežni mapi odprte in zaklenjene, drugi uporabniki pa v njej ne morejo spreminjati sprememb. V tem članku bomo pokazali, kako pridobiti seznam odprtih datotek na datotečnem strežniku, izvedeli, kateri uporabniki jih uporabljajo in kako ponastaviti te seje datotek..
Vsebina:
- Seznam odprtih datotek na datotečnem strežniku Windows
- Kako ugotoviti, kateri uporabnik je odprl datoteko
- Kako zapreti odprto datoteko
- Kako na daljavo zapreti odprte datoteke s programom PowerShell
Seznam odprtih datotek na datotečnem strežniku Windows
Seznam datotek, ki jih uporabniki odprejo na datotečnem strežniku Windows, je mogoče dobiti s standardno grafično konzolo Računalniško vodenje (Računalniško upravljanje - compmgmt.msc).
Zaženite konzolo Computer Management na datotečnem strežniku (ali jo na daljavo povežite s konzolo iz računalnika) in pojdite na razdelek Sistemska orodja -> Skupne mape v skupni rabi -> Odprite datoteke (Pripomočki -> Skupne mape -> Datoteke odprte). Na desni strani okna se prikaže seznam strežniških datotek na daljavo. Seznam vsebuje lokalno pot do datoteke, ime uporabniškega računa, število zapornic in način, v katerem je datoteka odprta (branje ali pisanje + branje).
Z vgrajenim pripomočkom konzole lahko dobite enak seznam odprtih datotek Openfiles. Na primer z naslednjim ukazom lahko dobite id seje, uporabniško ime in polno lokalno pot do odprte datoteke:
Openfiles / poizvedba / za csv | več
Isti ukaz lahko izvajate na daljavo, na primer potrebujete seznam odprtih datotek na datotečnem strežniku mskfs01:
Openfiles / poizvedba / s mskfs01 / fo csv
openfiles / lokalni on
in znova zaženite strežnik. Po tem bodo datoteke, ki jih odpirajo lokalni procesi, začele priti na seznam (ta način je priporočljivo uporabljati samo za odpravljanje napak, saj lahko negativno vpliva na delovanje strežnika).Kako ugotoviti, kateri uporabnik je odprl datoteko
Za prepoznavanje uporabnika, ki je odprl (zaklenil) datoteko cons.adm v strežniku zaženite ukaz:
Openfiles / poizvedba / s mskfs01 / fo csv | najdi / i "cons.adm"
Seveda lahko določite samo del imena datoteke. Na primer, moramo ugotoviti, kdo je odprl datoteko xlsx, katere ime je linijska kmetija, in uporabimo ta cevovod:
Openfiles / poizvedba / s mskfs01 / fo csv | najdi / i "kmetija" | najdi / i "xlsx"
Seveda lahko najdete datoteko v grafični konzoli Computer Management, vendar je manj priročno (konzola ne omogoča iskanja).
Kako zapreti odprto datoteko
Če želite odpreti odprto datoteko, jo morate najti na seznamu datotek v razdelku Odpri datoteko in izberite "Zapri odprto datoteko".
Če je na datotečnem strežniku na stotine odprtih datotek, jih najdete v konzoli ne bo enostavno. Primerneje je uporabljati pripomoček Openfiles. Kot smo že povedali, vrne ID seje odprte datoteke. Prav zaradi tega ID-ja seje je mogoče datoteko prisilno zapreti s ponastavitvijo povezave. Poiščite ID želene datoteke:
Openfiles / poizvedba / s mskfs01 / fo csv | najdi / i "kmetija" | najdi / i ".xlsx"
Uporabnika od njega izključimo s prejetim identifikatorjem:
Openfiles / Prekini / s mskfs01 / ID 67109098
Kako na daljavo zapreti odprte datoteke s programom PowerShell
V sistemu Windows Server 2012 / Windows 8 je PowerShell predstavil cmdlete za delo s kroglicami in datotekami na strežniku SMB. Ti cmdleti se lahko uporabljajo za daljinsko ponastavitev povezav z odprto datoteko..
Seznam odprtih datotek lahko dobite z ukaznimi elementi Get.-SMBOpenFile , in zaprite datoteko (ponastavite povezavo) z Zapri-SmbOpenFile.
Torej, povežemo se z oddaljenim strežnikom:
$ sessn = Novo-CIMSession -Kompjutersko ime mskfs01
Poiščite in zaprite odprto datoteko pubs.docx z enim ukazom:
Get-SMBOpenFile -CIMSession $ sessn | kjer je $ _. Path "* pubs.docx" | Zapri-SMBOpenFile -CIMSession $ sessn
Zapiranje datoteke potrdite s pritiskom na Y.
Če želite odstraniti potrditev prisilnega zapiranja datoteke na strežniku, uporabite stikalo -ForceIsti ukazi se lahko uporabljajo na primer za zapiranje vseh datotek, ki jih je odprl neki uporabnik (uporabnik je odšel domov in datotek ni izdal). Na primer, da ponastavite vse seje datotek za ipivanov, naredite
Get-SMBOpenFile -CIMSession $ sessn | kjer $ _. ClientUserName -like "* ipivanov *" | Zapri-SMBOpenFile -CIMSession $ sessn