Weboldal keresés

Hogyan lehet feloldani a bármely folyamat vagy RENDSZER által zárolt fájlt?


Néha, amikor megpróbál törölni, átnevezni vagy áthelyezni egy fájlt a Windows rendszerben, egy üzenet jelenhet meg arról, hogy a fájl foglalt/le van zárva/egy másik folyamat használja. Általában a fájlt nyitva tartó program neve közvetlenül a File Explorer üzenetablakában jelenik meg. A fájl zárolásának feloldásához elég csak bezárni a programot. Előfordulhat azonban, hogy egy fájlt vagy könyvtárat egy ismeretlen vagy rendszerfolyamat használ. Akkor nehezebb feloldani.

Sok alkalmazás kizárólagos módban nyitja meg a fájlokat. Ugyanakkor a fájlt egy fájlrendszer zárolja, amely megakadályozza a bemeneti-kimeneti műveleteket más alkalmazásokból és folyamatokból. Ha bezárja az alkalmazást, a fájlzár feloldódik.

A fájlzárolási üzenet eltérő lehet. Például a következő képernyőképen látható a fájltípus és a társított alkalmazás:

File/Folder in Use. The action can’t be completed because the file is open in another program. Close the folder or file and try again.

Ezután könnyen megértheti, melyik alkalmazás zárolta a fájlt, és bezárhatja.

Néha azonban érdekesebb üzenetet láthat, miszerint egy fájlt egy ismeretlen vagy Windows rendszerfolyamat használ. Ez lehet egy Windows-folyamat vagy más, a rendszerjogosultságokkal működő folyamat, például egy víruskereső alkalmazás, egy biztonsági mentési ügynök, egy MSSQL-adatbázis stb.:

The action can’t be completed because the file is open in SYSTEM.
Close the file and try again.

Próbáljuk meg kideríteni, melyik program, szolgáltatás vagy Windows rendszerfolyamat használ egy fájlt, hogyan lehet feloldani a fájl zárolását, és fel lehet-e szabadítani a szülőfolyamat bezárása nélkül.

Ha nem tud törölni egy mappát egy megosztott hálózati mappában, a probléma valószínűleg a thumbs.db fájlhoz kapcsolódik, amely a mappában lévő fájlok bélyegkép-gyorsítótárát tartalmazza, vagy a fájlt egy másik felhasználó nyitotta meg (zárolta) az SMB-fájlkiszolgálón.

A fájl zárolásának feloldásának legegyszerűbb módja a zárolási folyamat befejezése. De ez nem mindig lehetséges, különösen a szervereken.

Egy fájlt zárolt folyamat megtalálásához gyakran javasolt a Unlocker eszköz használata. Nem használom az Unlockert, mivel nem ad részletes információt egy fájlt zárolt folyamatról vagy folyamatláncról. Egy folyamat által használt fájl zárolását sem tudja feloldani - egy alkalmazást teljesen meg kell ölnie.

Ezenkívül ez egy harmadik féltől származó eszköz, és nagyon figyelmesnek kell lennie, amikor telepíti, mert azt javasolja, hogy telepítsen egy egész csomag olyan programot, amelyre nincs szüksége.

Amikor a Windows folyamata megnyit egy fájlt, a rendszer egy fájlleírót (leírót) rendel a bemeneti/kimeneti adatfolyamhoz. A folyamat és a gyermekfolyamatok a kezelő segítségével hozzáférnek a fájlhoz. A Windows API használatával jelet küldhet a fájlrendszernek a fájlkezelő felszabadításához és a fájl zárolásának feloldásához.

Ha kényszeríti a fájlkezelők bezárását, az alkalmazás vagy számítógép instabil működését eredményezheti. Ha nem biztos abban, hogy mi történhet egy alkalmazás fájlkezelőjének bezárása után, ne tegye ezt éles kiszolgálón, hacsak előzetesen nem tesztelte.

Hogyan lehet feloldani egy fájlt a Process Explorer segítségével?

A ProcessExplorer egy ingyenes eszköz a Sysinternals készletből, amelyet a Microsoft webhelyéről tölthet le (https://docs.microsoft.com/en-us/sysinternals/downloads/process-explorer). Próbáljunk meg találni egy folyamatot, amely zárolt egy fájlt, és felszabadítjuk a fájlt a folyamat fájlkezelőjének alaphelyzetbe állításával.

  1. Nem kell telepítenie a ProcessExplorert: csak töltse le, csomagolja ki és futtassa a procexp.exe fájlt rendszergazdaként;

  2. Válassza a Keresés -> Kereső fogantyú vagy DLL lehetőséget (vagy nyomja meg

    Ctrl-F

    );

  3. Adja meg a feloldani kívánt fájlnevet, majd kattintson a Keresés gombra;

  4. Válassza ki a kívánt fájlt. A fájlt megnyitó folyamat kiemelve lesz a folyamatfán. Kattintson rá jobb gombbal, és válassza a Kill Process Treelehetőséget a folyamat befejezéséhez. Azonban megpróbálhatja bezárni a fájlkezelőt a folyamat befejezése nélkül. A keresett fájlkezelő automatikusan kiemelésre kerül a Process Explorer alsó paneljén. Kattintson a jobb gombbal a fogantyúra, és válassza a Lebilincs bezárása lehetőséget. Erősítse meg a fájl bezárását;

Ha az alsó panel a nyitott folyamatleírók listájával nem jelenik meg a Process Explorerben, engedélyezze a Nézet -> Alsó ablaktábla nézet -> Fogantyúk lehetőséget.

Tehát bezárta a fájlkezelőt a szülőfolyamat befejezése nélkül. Ezután eltávolíthatja vagy átnevezheti a fájlt.

Hogyan lehet felszabadítani egy fájlkezelőt a Handle Tool segítségével?

A Handle egy másik parancssori eszköz a Sysinternalstól (letöltheti a Microsoft webhelyéről: https://docs.microsoft.com/en-us/sysinternals/downloads/handle). Lehetővé teszi, hogy megtalálja azt a folyamatot, amely zárolta a fájlt, és feloldja a zárat a fogantyú felszabadításával.

  1. Töltse le és bontsa ki a Handle archívumot;

  2. Nyissa meg a parancssort rendszergazdaként, és futtassa a következő parancsot:

    handle64.exe > listproc.txt

  3. Ez a parancs txt fájlba menti a nyitott leírók listáját. Megjelenítheti annak a könyvtárnak a fogantyúit, amelyben a módosítani kívánt fájl található:

    Handle64.exe -a “C:\Program Files\App”

    vagy az adott folyamathoz:

    handle64.exe -p excel.exe
  4. Nyissa meg a listproc.txt fájlt bármely szövegszerkesztőben, és keresse meg azt a sort, amely a zárolt fájl nevét tartalmazza. Másolja ki az ID fájlkezelőt (hexadecimális formátumban). Ezután lépjen fel arra a szakaszra, ahol a leírót birtokló folyamat látható, és írja le az azonosítóját. A legvalószínűbb, hogy egy rendszerként futtatott folyamat PID 4-es lesz.

    Egyes Windows rendszerfolyamatok esetén a handle.exe a következő üzenetet adja vissza:

    wininit.exe pid: 732 \<unable to open process>

    . Ez azt jelenti, hogy ezekről a rendszerfolyamatokról nem kaphat információt (még rendszergazdaként sem). A fájlleírók megnyitásához az ilyen folyamatok által, futtassa a cmd.exe fájlt System néven, és próbálja meg újra lekérni a leírók listáját.

  5. Ezután térjen vissza a parancssorhoz, és állítsa vissza a fájlkezelőt a HandleID és ProcessID segítségével. A parancs formátuma a következő:

    handl64e.exe -c HandleID -p ProcessID

    Például:

    handl64e.exe -c 18C -p 18800

  6. Az eszköz kérni fogja, hogy erősítse meg a fájl bezárását a folyamathoz. Erősítse meg a gomb megnyomásával

    y -> enter

Ha a rendszer megfelelően reagál a fájl bezárására, akkor a folyamat befejezése vagy a szerver/számítógép újraindítása nélkül feloldja a fájl zárolását.

Kapcsolódó cikkek