Správci souborového serveru Windows musí často nutit uživatele, aby zavírali soubory otevřené uživateli. Takový problém vzniká, když několik uživatelů pracuje současně s jedním souborem. Pokud software nefunguje správně nebo uživatel relaci dokončí správně, soubory v síťové složce se zdají být otevřené a zamčené a ostatní uživatelé v ní nemohou provádět změny. V tomto článku si ukážeme, jak získat seznam otevřených souborů na souborovém serveru, zjistit, kteří uživatelé je používají, a jak tyto relace souborů resetovat..
Obsah:
- Seznam otevřených souborů na souborovém serveru Windows
- Jak zjistit, který uživatel soubor otevřel
- Jak zavřít otevřený soubor
- Jak vzdáleně zavřít otevřené soubory pomocí PowerShell
Seznam otevřených souborů na souborovém serveru Windows
Seznam souborů otevřených uživateli na souborovém serveru Windows lze získat pomocí standardní grafické konzoly Správa počítače (Správa počítače - compmgmt.msc).
Spusťte konzolu Správa počítače na souborovém serveru (nebo se k ní připojte vzdáleně pomocí konzoly z počítače) a přejděte do části Systémové nástroje -> Sdílené složky -> Otevřít soubory (Nástroje -> Sdílené složky -> Otevřené soubory). Na pravé straně okna se zobrazí seznam serverových souborů otevřených vzdáleně. Seznam obsahuje lokální cestu k souboru, název uživatelského účtu, počet zámků a režim, ve kterém je soubor otevřen (čtení nebo zápis + čtení).
Stejný seznam otevřených souborů lze získat pomocí vestavěného obslužného programu konzoly Openfiles. Například pomocí následujícího příkazu získáte ID relace, uživatelské jméno a úplnou místní cestu k otevřenému souboru:
Openfiles / Query / fo csv | more
Stejný příkaz lze provést na dálku, například potřebujete seznam otevřených souborů na souborovém serveru mskfs01:
Openfiles / Query / s mskfs01 / fo csv
openfiles / local on
a restartujte server. Poté se do seznamu začnou dostávat soubory otevřené místními procesy (tento režim je vhodné použít pouze pro ladění, protože to může negativně ovlivnit výkon serveru).Jak zjistit, který uživatel soubor otevřel
Identifikace uživatele, který soubor otevřel (zamkl) cons.adm na serveru spusťte příkaz:
Openfiles / Query / s mskfs01 / fo csv | najít / i "cons.adm"
Přirozeně můžete zadat pouze část názvu souboru. Například musíme zjistit, kdo otevřel soubor xlsx, jehož název je řádková farma, použijeme tento plynovod:
Openfiles / Query / s mskfs01 / fo csv | najít / i "farma" najít / i "xlsx"
Soubor můžete samozřejmě najít v grafické konzole pro správu počítače, ale je to méně pohodlné (konzole neposkytuje možnost vyhledávání).
Jak zavřít otevřený soubor
Chcete-li otevřít otevřený soubor, musíte jej najít v seznamu souborů v části Otevřít soubor a vybrat možnost „Zavřete otevřený soubor".
Pokud jsou na souborovém serveru stovky otevřených souborů, nebude jejich nalezení v konzole snadné. Je vhodnější použít nástroj Openfiles. Jak jsme již řekli, vrací ID relace otevřeného souboru. Je to pro toto ID relace, že soubor může být násilně uzavřen resetováním připojení. Vyhledejte ID požadovaného souboru:
Openfiles / Query / s mskfs01 / fo csv | najít / i "farma" najít / i ".xlsx"
Odpojujeme uživatele od přijatého identifikátoru:
Openfiles / Disconnect / s mskfs01 / ID 67109098
Jak vzdáleně zavřít otevřené soubory pomocí PowerShell
Ve Windows Server 2012 / Windows 8 představil PowerShell rutiny cmdlet pro práci s míčky a soubory na SMB serveru. Tyto rutiny cmdlet lze použít k dálkovému obnovení připojení k otevřenému souboru..
Seznam otevřených souborů lze získat pomocí Get cmdlets.-SMBOpenFile , a zavřete soubor (resetujte připojení) pomocí Close-SmbOpenFile.
Připojujeme se tedy ke vzdálenému serveru:
$ sessn = Nový-CIMS relace - Název mskfs01
Najděte a zavřete otevřený soubor pubs.docx jedním příkazem:
Get-SMBOpenFile -CIMSession $ sessn | kde $ _. Path-like "* pubs.docx" | Zavřít-SMBOpenFile -CIMSession $ sessn
Potvrďte uzavření souboru stisknutím Y.
Chcete-li odebrat potvrzení nuceného uzavření souboru na serveru, použijte přepínač -ForceStejné příkazy lze použít například k uzavření všech souborů otevřených některým uživatelem (uživatel šel domů a soubory neuvedl). Chcete-li například obnovit všechny relace souborů pro ipivanov, proveďte
Get-SMBOpenFile -CIMSession $ sessn | kde $ _. ClientUserName-like "* ipivanov *" | Close-SMBOpenFile -CIMSession $ sessn