บางครั้งเมื่อคุณพยายามลบ เปลี่ยนชื่อ หรือย้ายไฟล์ใน 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 เนื่องจากไม่มีข้อมูลโดยละเอียดเกี่ยวกับกระบวนการหรือกระบวนการที่ล็อคไฟล์ คุณไม่สามารถปลดล็อกไฟล์ที่ใช้โดยกระบวนการ — คุณต้องฆ่าแอปอย่างสมบูรณ์นอกจากนี้ มันเป็นเครื่องมือของบริษัทอื่น และคุณควรใส่ใจมากเมื่อคุณติดตั้ง เพราะมันแนะนำให้ติดตั้งชุดโปรแกรมทั้งหมดที่คุณไม่ต้องการ
เมื่อกระบวนการใน Windows เปิดไฟล์ ตัวอธิบายไฟล์ (หมายเลขอ้างอิง) ถูกกำหนดให้กับสตรีมอินพุต/เอาต์พุต กระบวนการและกระบวนการย่อยเข้าถึงไฟล์โดยใช้ตัวจัดการ เมื่อใช้ Windows API คุณสามารถส่งสัญญาณไปยังระบบไฟล์ของคุณเพื่อให้แฮนเดิลไฟล์ว่างและปลดล็อกไฟล์ได้
หากคุณบังคับปิดตัวจัดการไฟล์ อาจทำให้แอปหรือคอมพิวเตอร์ทำงานไม่เสถียร หากคุณไม่แน่ใจว่าจะเกิดอะไรขึ้นหลังจากที่คุณปิดตัวจัดการไฟล์ของแอพ อย่าทำสิ่งนี้บนเซิร์ฟเวอร์ที่ใช้งานจริง เว้นแต่คุณจะทดสอบมันล่วงหน้าจะปลดล็อกไฟล์โดยใช้ Process Explorer ได้อย่างไร
ProcessExplorer เป็นเครื่องมือฟรีจากชุดอุปกรณ์ Sysinternals ที่คุณดาวน์โหลดได้จากเว็บไซต์ Microsoft (https://docs.microsoft.com/en-us/sysinternals/downloads/process-explorer) มาลองค้นหากระบวนการที่ล็อคไฟล์และทำให้ไฟล์ว่างโดยรีเซ็ตตัวจัดการไฟล์ของกระบวนการ
- คุณไม่จำเป็นต้องติดตั้ง ProcessExplorer เพียงดาวน์โหลด แตกไฟล์ และเรียกใช้ procexp.exe ในฐานะผู้ดูแลระบบ
- เลือก ค้นหา -> ค้นหา Handle หรือ DLL (หรือกด
Ctrl-F
); - ระบุชื่อไฟล์ที่คุณต้องการปลดล็อกแล้วคลิก ค้นหา;
- เลือกไฟล์ที่คุณต้องการ กระบวนการที่เปิดไฟล์จะถูกเน้นในแผนผังกระบวนการ คลิกขวาและเลือก ฆ่าแผนผังกระบวนการ เพื่อสิ้นสุดกระบวนการ อย่างไรก็ตาม คุณสามารถลองและปิดตัวจัดการไฟล์ได้โดยไม่สิ้นสุดกระบวนการ ตัวจัดการไฟล์ที่คุณค้นหาจะถูกเน้นโดยอัตโนมัติในแผงด้านล่างของ Process Explorer คลิกขวาที่แฮนเดิลและเลือก ปิดแฮนเดิล . ยืนยันการปิดไฟล์;
ดังนั้นคุณได้ปิดตัวจัดการไฟล์โดยไม่สิ้นสุดกระบวนการหลัก จากนั้นคุณสามารถลบหรือเปลี่ยนชื่อไฟล์ได้
จะปล่อยตัวจัดการไฟล์โดยใช้เครื่องมือจัดการได้อย่างไร
ด้ามจับ เป็นเครื่องมือบรรทัดคำสั่งอื่นจาก Sysinternals (คุณสามารถดาวน์โหลดได้บนเว็บไซต์ของ Microsoft:https://docs.microsoft.com/en-us/sysinternals/downloads/handle) ช่วยให้คุณค้นหากระบวนการที่ล็อคไฟล์ของคุณและปลดล็อคโดยปล่อยที่จับ
- ดาวน์โหลดและแตกไฟล์แฮนเดิลอาร์ไคฟ์
- เปิดพรอมต์คำสั่งในฐานะผู้ดูแลระบบ และเรียกใช้คำสั่งต่อไปนี้:
handle64.exe > listproc.txt
- คำสั่งนี้จะบันทึกรายการของแฮนเดิลที่เปิดอยู่ในไฟล์ txt คุณสามารถแสดงแฮนเดิลสำหรับไดเร็กทอรีที่มีไฟล์ที่คุณต้องการเปลี่ยนอยู่ใน:
Handle64.exe -a “C:\Program Files\App”
หรือสำหรับกระบวนการเฉพาะ:handle64.exe -p excel.exe
- เปิด listproc.txt ในโปรแกรมแก้ไขข้อความและค้นหาบรรทัดที่มีชื่อไฟล์ที่ถูกล็อก คัดลอกไฟล์แฮนเดิล ID (ในรูปแบบเลขฐานสิบหก) จากนั้นไปที่ส่วนที่แสดงกระบวนการที่เป็นเจ้าของหมายเลขอ้างอิงและจด ID เป็นไปได้มากที่สุดที่กระบวนการทำงานโดยระบบจะมี PID 4 สำหรับกระบวนการบางอย่างของระบบ Windows handle.exe จะส่งคืนข้อความต่อไปนี้:
wininit.exe pid: 732 \<unable to open process>
. หมายความว่าคุณไม่สามารถรับข้อมูลใดๆ เกี่ยวกับกระบวนการของระบบเหล่านี้ (แม้ในฐานะผู้ดูแลระบบ) หากต้องการให้จัดการไฟล์เปิดโดยกระบวนการดังกล่าว ให้เรียกใช้ cmd.exe เป็น System แล้วลองรับรายการจัดการอีกครั้ง - จากนั้นกลับไปที่พรอมต์คำสั่งและรีเซ็ตตัวจัดการไฟล์โดยใช้ HandleID และ ProcessID คำสั่งมีรูปแบบดังต่อไปนี้:
handl64e.exe -c HandleID -p ProcessID
ตัวอย่างเช่น:handl64e.exe -c 18C -p 18800
- เครื่องมือจะแจ้งให้คุณยืนยันการปิดไฟล์สำหรับกระบวนการ ยืนยันโดยกด
y
->enter
.
หากระบบตอบสนองต่อการปิดไฟล์อย่างถูกต้อง คุณจะปลดล็อกไฟล์โดยไม่ยุติกระบวนการหรือรีสตาร์ทเซิร์ฟเวอร์/คอมพิวเตอร์