ค้นหาเว็บไซต์

วิธีปลดล็อกไฟล์ที่ถูกล็อกโดยกระบวนการหรือระบบใดๆ


บางครั้งเมื่อคุณพยายามลบ เปลี่ยนชื่อ หรือย้ายไฟล์ใน Windows คุณอาจเห็นข้อความแจ้งว่าไฟล์ไม่ว่าง/ล็อค/ใช้งานโดยกระบวนการอื่น โดยปกติแล้ว ชื่อของโปรแกรมที่เปิดไฟล์ไว้จะแสดงในหน้าต่างข้อความ File Explorer หากต้องการปลดล็อกไฟล์เพียงแค่ปิดโปรแกรมก็เพียงพอแล้ว อย่างไรก็ตาม อาจเกิดขึ้นได้ว่าไฟล์หรือไลบรารีถูกใช้โดยกระบวนการที่ไม่รู้จักหรือระบบ แล้วปลดล็อคยากขึ้น

แอพจำนวนมากเปิดไฟล์ในโหมดพิเศษ ในขณะเดียวกัน ไฟล์จะถูกล็อคโดยระบบไฟล์ที่ป้องกันการดำเนินการอินพุต-เอาท์พุตจากแอพและกระบวนการอื่นๆ หากคุณปิดแอพ ไฟล์ล็อคจะถูกปลดล็อค

ข้อความล็อคไฟล์อาจแตกต่างออกไป ตัวอย่างเช่น ภาพหน้าจอต่อไปนี้แสดงประเภทไฟล์และแอปที่เกี่ยวข้อง:

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.

จากนั้นคุณสามารถเข้าใจได้ง่ายว่าแอปใดล็อกไฟล์และปิด

อย่างไรก็ตาม บางครั้งคุณอาจเห็นข้อความที่น่าสนใจกว่าว่ามีการใช้ไฟล์โดยไม่รู้จักหรือกระบวนการของระบบ Windows อาจเป็นได้ทั้งกระบวนการของ Windows หรือกระบวนการอื่นๆ ที่ทำงานร่วมกับสิทธิ์พิเศษของระบบ เช่น แอปป้องกันไวรัส เอเจนต์สำรองข้อมูล ฐานข้อมูล MSSQL เป็นต้น:

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

มาลองค้นหาว่าโปรแกรม บริการ หรือกระบวนการของระบบ Windows ใดกำลังใช้ไฟล์ วิธีปลดล็อกไฟล์ และดูว่าไฟล์นั้นอาจถูกปล่อยออกมาโดยไม่ปิดกระบวนการหลักหรือไม่

หากคุณไม่สามารถลบโฟลเดอร์ในโฟลเดอร์เครือข่ายที่ใช้ร่วมกัน ปัญหาน่าจะเกี่ยวข้องกับ thumbs.db ที่มีแคชภาพขนาดย่อของไฟล์ในโฟลเดอร์ หรือไฟล์ถูกเปิด (ล็อก) โดยผู้ใช้รายอื่นบนเซิร์ฟเวอร์ไฟล์ SMB ของคุณ

วิธีที่ง่ายที่สุดในการปลดล็อกไฟล์คือการสิ้นสุดกระบวนการที่ล็อกไฟล์ แต่ก็ไม่สามารถทำได้เสมอไป โดยเฉพาะบนเซิร์ฟเวอร์

หากต้องการค้นหากระบวนการที่ล็อกไฟล์ เรามักจะแนะนำให้ใช้เครื่องมือ Unlocker ฉันไม่ได้ใช้ Unlocker เนื่องจากไม่ได้ให้ข้อมูลโดยละเอียดเกี่ยวกับกระบวนการหรือห่วงโซ่ของกระบวนการที่ล็อคไฟล์ คุณไม่สามารถปลดล็อกไฟล์ที่กระบวนการใช้ - คุณต้องฆ่าแอปทั้งหมด

นอกจากนี้ยังเป็นเครื่องมือของบุคคลที่สาม และคุณควรระมัดระวังเป็นอย่างยิ่งเมื่อคุณติดตั้ง เนื่องจากมันแนะนำให้ติดตั้งชุดโปรแกรมทั้งหมดที่คุณไม่ต้องการ

เมื่อกระบวนการใน Windows เปิดไฟล์ ตัวอธิบายไฟล์ (ตัวจัดการ) จะถูกกำหนดให้กับสตรีมอินพุต/เอาท์พุต กระบวนการและกระบวนการลูกเข้าถึงไฟล์โดยใช้ตัวจัดการ เมื่อใช้ Windows API คุณสามารถส่งสัญญาณไปยังระบบไฟล์ของคุณเพื่อปลดปล่อยตัวจัดการไฟล์และปลดล็อคไฟล์

หากคุณบังคับให้ปิดตัวจัดการไฟล์ อาจส่งผลให้แอปหรือคอมพิวเตอร์ของคุณทำงานไม่เสถียร หากคุณไม่แน่ใจว่าจะเกิดอะไรขึ้นหลังจากปิดตัวจัดการไฟล์ของแอพ อย่าทำสิ่งนี้บนเซิร์ฟเวอร์ที่ใช้งานจริง เว้นแต่คุณจะได้ทดสอบล่วงหน้า

จะปลดล็อกไฟล์โดยใช้ Process Explorer ได้อย่างไร

ProcessExplorer เป็นเครื่องมือฟรีจากชุด Sysinternals ที่คุณสามารถดาวน์โหลดได้จากเว็บไซต์ของ Microsoft (https://docs.microsoft.com/en-us/sysinternals/downloads/process-explorer) ลองหากระบวนการที่ล็อคไฟล์และทำให้ไฟล์ว่างโดยการรีเซ็ตตัวจัดการไฟล์ของกระบวนการ

  1. คุณไม่จำเป็นต้องติดตั้ง ProcessExplorer เพียงดาวน์โหลด แตกไฟล์ และเรียกใช้ procexp.exe ในฐานะผู้ดูแลระบบ

  2. เลือก ค้นหา -> ค้นหาหมายเลขอ้างอิงหรือ DLL (หรือกด

    Ctrl-F

    );

  3. ระบุชื่อไฟล์ที่คุณต้องการปลดล็อกแล้วคลิก ค้นหา

  4. เลือกไฟล์ที่คุณต้องการ กระบวนการที่เปิดไฟล์จะถูกเน้นในโครงสร้างกระบวนการ คลิกขวาและเลือก Kill Process Tree เพื่อสิ้นสุดกระบวนการ อย่างไรก็ตาม คุณสามารถลองและปิดตัวจัดการไฟล์โดยไม่ต้องสิ้นสุดกระบวนการ ตัวจัดการไฟล์ที่คุณค้นหาจะถูกเน้นโดยอัตโนมัติในแผงด้านล่างของ Process Explorer คลิกขวาที่จุดจับแล้วเลือก ปิดจุดจับ ยืนยันการปิดไฟล์

หากแผงด้านล่างที่มีรายการตัวจัดการกระบวนการเปิดไม่แสดงใน Process Explorer ของคุณ ให้เปิดใช้งานตัวเลือก View -> Lower Pane View -> Handles

ดังนั้นคุณจึงปิดตัวจัดการไฟล์โดยไม่สิ้นสุดกระบวนการพาเรนต์ จากนั้นคุณสามารถลบหรือเปลี่ยนชื่อไฟล์ได้

จะปล่อยตัวจัดการไฟล์โดยใช้เครื่องมือตัวจัดการได้อย่างไร

Handle เป็นอีกหนึ่งเครื่องมือบรรทัดคำสั่งจาก Sysinternals (คุณสามารถดาวน์โหลดได้ที่เว็บไซต์ของ Microsoft: https://docs.microsoft.com/en-us/sysinternals/downloads/handle) ช่วยให้คุณค้นหากระบวนการที่ล็อคไฟล์ของคุณและปลดล็อคโดยปล่อยที่จับ

  1. ดาวน์โหลดและแตกไฟล์เก็บถาวร Handle;

  2. เปิดพรอมต์คำสั่งในฐานะผู้ดูแลระบบและเรียกใช้คำสั่งต่อไปนี้:

    handle64.exe > listproc.txt

  3. คำสั่งนี้จะบันทึกรายการของที่จับเปิดไปยังไฟล์ txt คุณสามารถแสดงจุดจับสำหรับไดเร็กทอรีที่มีไฟล์ที่คุณต้องการเปลี่ยนอยู่ใน:

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

    หรือสำหรับกระบวนการเฉพาะ:

    handle64.exe -p excel.exe
  4. เปิด listproc.txt ในโปรแกรมแก้ไขข้อความใดๆ และค้นหาบรรทัดที่มีชื่อของไฟล์ที่ถูกล็อก คัดลอกหมายเลขอ้างอิงไฟล์ ID (ในรูปแบบเลขฐานสิบหก) จากนั้นไปที่ส่วนที่มีการแสดงกระบวนการที่เป็นเจ้าของหมายเลขอ้างอิงและจด ID ไว้ เป็นไปได้มากว่ากระบวนการที่ทำงานเป็นระบบจะมี PID 4

    สำหรับกระบวนการของระบบ Windows บางอย่าง handle.exe จะส่งคืนข้อความต่อไปนี้:

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

    . หมายความว่าคุณไม่สามารถรับข้อมูลใดๆ เกี่ยวกับกระบวนการของระบบเหล่านี้ได้ (แม้จะเป็นผู้ดูแลระบบก็ตาม) หากต้องการให้ตัวจัดการไฟล์เปิดโดยกระบวนการดังกล่าว ให้เรียกใช้ cmd.exe เป็นระบบ แล้วลองรับรายการตัวจัดการอีกครั้ง

  5. จากนั้นกลับไปที่พรอมต์คำสั่งและรีเซ็ตตัวจัดการไฟล์ด้วย HandleID และ ProcessID คำสั่งมีรูปแบบดังนี้

    handl64e.exe -c HandleID -p ProcessID

    ตัวอย่างเช่น:

    handl64e.exe -c 18C -p 18800

  6. เครื่องมือจะแจ้งให้คุณยืนยันการปิดไฟล์สำหรับกระบวนการ ยืนยันโดยการกด

    y -> enter

หากระบบตอบสนองต่อการปิดไฟล์อย่างถูกต้อง คุณจะปลดล็อกไฟล์ของคุณโดยไม่ต้องสิ้นสุดกระบวนการหรือรีสตาร์ทเซิร์ฟเวอร์/คอมพิวเตอร์ของคุณ

บทความที่เกี่ยวข้อง