เมื่อคุณพยายามที่จะลบไฟล์หรือโฟลเดอร์ที่มีการใช้งานโดยกระบวนการโต้ตอบการใช้ไฟล์ปรากฏขึ้นแสดงชื่อของโปรแกรมที่ล็อคไฟล์
อย่างไรก็ตามมีบางกรณีที่กล่องโต้ตอบ“ ไฟล์ใช้อยู่” ไม่แสดงชื่อของกระบวนการที่มีการล็อคไฟล์ที่คุณพยายามลบ ในบางกรณีกล่องโต้ตอบจะแสดง“ การดำเนินการไม่สามารถเสร็จสิ้นได้เนื่องจากไฟล์เปิดอยู่ใน กระบวนการอื่น ”
สำหรับการตรวจสอบกระบวนการและไฟล์ที่ถูกล็อค Windows Sysinternals Process Explorer อาจเป็นตัวเลือกแรกที่คำนึงถึงผู้ใช้ส่วนใหญ่ อย่างไรก็ตามมี โซลูชันในตัว สอง ตัว เพื่อแสดงรายการไฟล์ที่เปิดอยู่ในปัจจุบันพร้อมกับชื่อกระบวนการที่เกี่ยวข้อง
ค้นหากระบวนการที่ล็อกไฟล์โดยใช้:
- การตรวจสอบทรัพยากร (resmon.exe)
- Process Explorer จาก Microsoft Sysinternals
- จัดการจาก Microsoft Sysinternals
- ค้นหาตัวจัดการไฟล์ผ่านเมนูคลิกขวา
- เครื่องมือคอนโซลในตัว Openfiles.exe
- เปิดใช้งานการติดตามการจัดการไฟล์โลคัล
- ดูไฟล์ที่เปิดและชื่อกระบวนการที่เกี่ยวข้อง
- ตัดการเชื่อมต่อไฟล์ที่เปิดจากโฟลเดอร์ที่แชร์
- OpenedFilesView จาก Nirsoft.net (บุคคลที่สาม)
1. การตรวจสอบทรัพยากร
การตรวจสอบทรัพยากร (resmon.exe) เป็นเครื่องมือในตัวที่มีคุณสมบัติที่มีประโยชน์มากมาย ด้วยการตรวจสอบทรัพยากรคุณสามารถติดตามการใช้เครือข่ายและอินเทอร์เน็ตในปัจจุบันดูการจัดการที่เกี่ยวข้องสำหรับไฟล์ที่ถูกล็อครวมถึงการจัดการกระบวนการเช่นเดียวกับที่คุณใช้ Task Manager
ในการค้นหาชื่อกระบวนการที่มีไฟล์ถูกล็อคคลิกที่แท็บ CPU พิมพ์ชื่อไฟล์หรือส่วนหนึ่งของมันในกล่องข้อความจับที่เกี่ยวข้อง
เราได้ครอบคลุมการตรวจสอบทรัพยากรก่อนหน้านี้ ตรวจสอบบทความเหล่านี้:
- วิธีใช้การตรวจสอบทรัพยากรเพื่อค้นหากระบวนการที่ล็อกไฟล์
- โปรแกรมใดที่ใช้แบนด์วิดท์อินเทอร์เน็ตทั้งหมดของคุณ ใช้การตรวจสอบทรัพยากรเพื่อค้นหา
2. ประมวลผล Explorer
Process Explorer ไม่จำเป็นต้องมีการแนะนำ ใน Process Explorer สิ่งที่คุณต้องทำคือใช้ฟีเจอร์ค้นหาและพิมพ์ชื่อไฟล์ นี่แสดงให้เห็นกระบวนการที่กำลังเข้าถึงไฟล์
จากมุมมองบานหน้าต่างด้านล่างคุณสามารถปิดตัวจัดการไฟล์หากจำเป็น
คุณต้องเรียกใช้ Process Explorer ในฐานะผู้ดูแลระบบเพื่อจัดการกระบวนการที่กำลังเรียกใช้การยกระดับ เพื่อยกระดับ Process Explorer ให้คลิกเมนูไฟล์→ แสดงรายละเอียดสำหรับกระบวนการทั้งหมด
ตรวจสอบบทความที่เกี่ยวข้องกับ Process Explorer เหล่านี้:
- วิธีลบไฟล์หรือโฟลเดอร์ Stubborn ที่ไม่สามารถลบได้ใน Windows?
- ค้นหาโปรแกรมที่ใช้งานเว็บแคมของคุณอยู่ในขณะนี้
- วิธีค้นหาโปรแกรมที่ทำให้เกิดข้อความแสดงข้อผิดพลาดที่ไม่รู้จัก
- การระบุวัตถุในคอนเทนเนอร์ล้มเหลวหมายความว่าอย่างไร
3. จัดการจาก Windows Sysinternals
หมายเลขอ้างอิงเป็นโปรแกรมอรรถประโยชน์จาก Microsoft Sysinternals ที่แสดงข้อมูลเกี่ยวกับหมายเลขอ้างอิงที่เปิดสำหรับกระบวนการใด ๆ ในระบบ คุณสามารถใช้มันเพื่อดูโปรแกรมที่มีไฟล์เปิดอยู่หรือเพื่อดูประเภทวัตถุและชื่อของหมายเลขอ้างอิงทั้งหมดของโปรแกรม หมายเลขอ้างอิงเป็นเหมือนกับ Process Explorer เวอร์ชันบรรทัดคำสั่ง
หมายเหตุ: หมายเลขอ้างอิง v4.21 มีข้อบกพร่องเล็ก ๆ ซึ่งมักจะรายงาน“ ไม่พบที่จับที่ตรงกัน” หากอักษรชื่อไดรฟ์เป็นตัวพิมพ์ใหญ่ หวังว่า Microsoft จะแก้ไขในการปรับปรุงครั้งต่อไป
จากหน้าต่างพรอมต์คำสั่งของผู้ดูแลระบบใช้ไวยากรณ์บรรทัดคำสั่งเพื่อค้นหากระบวนการที่เปิดไฟล์:
handle.exe -a -u filename_with_path
หากชื่อไฟล์มีช่องว่างให้ใส่ไว้ในเครื่องหมายคำพูดคู่
ตัวอย่าง:
handle.exe -a -u "c: \ users \ ramesh \ desktop \ Mandate-form.pdf"
(การกล่าวถึงชื่อไฟล์ที่ไม่มีเส้นทางอาจไม่จำเป็นต้องทำงานในทุกสถานการณ์ขอแนะนำให้รวมเส้นทางแบบเต็มเสมอ)
เอาต์พุตแสดงชื่อกระบวนการตัวระบุกระบวนการชื่อผู้ใช้ชื่อไฟล์ (เป้าหมาย) ที่ถูกล็อคพร้อมพา ธ
Sysinternals Handle: อาร์กิวเมนต์บรรทัดคำสั่ง
การใช้งาน: จัดการ [[-a [-l]] [-u] | [-c [-y]] | [-s]] [-p |] [ชื่อ] [-nobanner]
-a | ถ่ายโอนข้อมูลการจัดการทั้งหมด |
-l | เพียงแสดงส่วนจัดการไฟล์เพจที่สำรอง |
-ค | ปิดหมายเลขอ้างอิงที่ระบุ (ตีความว่าเป็นเลขฐานสิบหก) คุณต้องระบุกระบวนการด้วย PID การดำเนินการ: หมายเลขอ้างอิงการปิดอาจทำให้แอปพลิเคชันหรือระบบไม่เสถียร |
-y | อย่าแจ้งให้ยืนยันการปิดอย่างใกล้ชิด |
-s | จำนวนการพิมพ์ของแต่ละจุดจับเปิด |
-ยู | แสดงชื่อผู้ใช้ที่เป็นเจ้าของเมื่อค้นหาจุดจับ |
-p | ดัมพ์จัดการกับของกระบวนการ (ยอมรับชื่อบางส่วน) |
ชื่อ | ค้นหาการจัดการกับวัตถุด้วย (ยอมรับส่วน) |
-nobanner | อย่าแสดงแบนเนอร์เริ่มต้นและข้อความลิขสิทธิ์ |
ไม่มีข้อโต้แย้งใด ๆ ที่จะถ่ายโอนการอ้างอิงไฟล์ทั้งหมด
เพิ่ม Sysinternals Handle ไปที่เมนูคลิกขวา
คุณสามารถเพิ่ม Sysinternals Handle ไปที่เมนูคลิกขวาเพื่อค้นหาไฟล์ที่โปรแกรมถูกล็อคไฟล์ได้อย่างรวดเร็ว หากต้องการเพิ่มลงในเมนูบริบทให้ทำตามขั้นตอนเหล่านี้:
- ดาวน์โหลดหมายเลขอ้างอิงจากไซต์ Microsoft Sysinternals
- คัดลอกไฟล์ handle.exe & handle64.exe ไปยังโฟลเดอร์ - เช่น
d:\tools
- คัดลอกบรรทัดของรหัสต่อไปนี้ไปยัง Notepad และบันทึกไฟล์เป็น
find_handle.vbs
ไปยังตำแหน่งถาวร'เรียกใช้โปรแกรมอรรถประโยชน์ Sysinternals Handle.exe ด้วยอาร์กิวเมนต์ชื่อไฟล์ '© Ramesh Srinivasan - https://winhelponline.com/blog' วันที่สร้าง: 29 มี.ค. 2008 'วันที่อัพเดท: 11 มิ.ย. 2019' สำหรับ Windows ทุกรุ่นรวมถึง Windows 10 Option Explicit Dim objShell, WshShell, objFSO, sBaseKey, sFilename Set objShell = CreateObject ("Shell.Application") ตั้งค่า WshShell = CreateObject ("WScript.Shell") ตั้ง objFSO = CreateObject ("Scripting.FileSystemObject") ถ้า WScript.Arguments.Count ซอฟต์แวร์ \ Classes \ * \ shell \ "WshShell.RegWrite sBaseKey &" FindHandle \ ", " Find Handle ", " REG_SZ "WshShell.RegWrite sBaseKey &" FindHandle \ command \ ", " wscript.exe "&" "" _ WScript.ScriptFullName & "" "" & "" & "" "&"% 1 "&" "" ", " REG_SZ "อื่น ๆ ถ้า objFSO.FileExists (WScript.Arguments (0)) = True แล้ว sFilename = lcase (WScript.Arguments (0)) objShell.ShellExecute "cmd.exe", "/kd:\tools\handle.exe -a -u" & _ "", "& sFilename &" ", ", ", " Runas ", 1 End If End If
หมายเหตุ: เส้นทาง Sysinternals Handle.exe ฮาร์ดโค้ดเป็น
d:\tools\handle.exe
ในสคริปต์ข้างต้น หากโปรแกรมอยู่บนพา ธ อื่นให้แก้ไขพา ธ ในสคริปต์ตามนั้น สำหรับ Windows 64 บิตคุณสามารถใช้ handle.exe หรือ handle64.exe ก็ได้ - คลิกสองครั้งที่
find_handle.vbs
เพื่อเพิ่มรายการเมนูบริบทในรีจิสทรี คุณจะต้องทำสิ่งนี้เพียงครั้งเดียว แต่ถ้าคุณย้ายสคริปต์ไปยังโฟลเดอร์อื่นคุณจะต้องดับเบิลคลิกอีกครั้งเพื่ออัปเดตพา ธ ในรีจิสตรี - คุณจะเห็นตัวเลือก ค้นหาจุดจับ เมื่อคุณคลิกขวาที่ไฟล์ คลิกที่มันจะเปิดตัวสคริปต์ซึ่งจะทำงาน handle.exe ด้วยอาร์กิวเมนต์ชื่อไฟล์เพื่อค้นหากระบวนการที่มีไฟล์ถูกล็อค
ในการลบรายการเมนูบริบทของการ ค้นหา ให้เริ่มตัวแก้ไขรีจิสทรี ( regedit.exe
) และลบคีย์ต่อไปนี้:
HKEY_CURRENT_USER \ Software \ Classes \ * \ shell \ FindHandle
4. OpenFiles.exe - เครื่องมือคอนโซลในตัว
เครื่องมือในตัวอีกตัวที่เราจะใช้คือ Openfiles.exe เครื่องมือคอนโซลที่ไม่ใหม่สำหรับ Windows เปิดตัวครั้งแรกในปี 2000 โดยเป็นส่วนหนึ่งของเครื่องมือ Windows Resource Kit 2000/2003 ยูทิลิตี้นี้ถูกรวมโดยค่าเริ่มต้นใน Windows Vista และสูงกว่า (รวมถึง Windows 10) Openfiles แสดงรายการไฟล์ที่เปิดอยู่ในปัจจุบันจากโฟลเดอร์โลคัลหรือที่แชร์พร้อมกับชื่อ Handle ID และ Process executable เครื่องมือนี้ยังช่วยให้คุณสามารถตัดการเชื่อมต่อไฟล์อย่างน้อยหนึ่งไฟล์ที่เปิดจากระยะไกลจากโฟลเดอร์แชร์
เปิดใช้งานการตั้งค่าสถานะส่วนกลาง "ดูแลรายการวัตถุ" เป็นครั้งแรก
ก่อนอื่นเพื่อเปิดใช้งานการติดตามการจัดการไฟล์ในเครื่องคุณต้องเปิดการใช้งานสถานะ 'ดูแลรายการวัตถุ' โดยเรียกใช้คำสั่งต่อไปนี้จากพรอมต์คำสั่งของผู้ดูแลระบบ
openfiles / local on
คุณจะเห็นข้อความต่อไปนี้:
ข้อมูล: การตั้งค่าสถานะส่วนกลางของระบบ 'รายการรักษาวัตถุ' ถูกเปิดใช้งานในปัจจุบัน
คุณจะต้องเรียกใช้คำสั่งนี้เป็นครั้งแรกเท่านั้น จากนั้นรีสตาร์ท Windows เพื่อให้การเปลี่ยนแปลงมีผล
ดูไฟล์ที่เปิดและชื่อกระบวนการที่เกี่ยวข้อง
หลังจากรีสตาร์ท Windows จากหน้าต่างพรอมต์คำสั่งของผู้ดูแลให้พิมพ์:
openfiles
รายการนี้แสดง ID ไฟล์ / หมายเลขอ้างอิงชื่อกระบวนการและรายการไฟล์ที่เปิดในเครื่องหรือเปิดจากระยะไกลผ่านจุดแบ่งปันในเครื่องในรูปแบบตาราง
ในการดูผลลัพธ์ในรายการหรือรูปแบบ CSV ให้ใช้พารามิเตอร์ / query
openfiles / query / FO LIST openfiles / query / FO CSV
ในการคัดลอกผลลัพธ์ไปยังคลิปบอร์ดไปป์เอาท์พุทไปที่ Clip.exe ดังต่อไปนี้ จากนั้นวางผลลัพธ์ใน Notepad หรือตัวแก้ไขอื่น ๆ ที่คุณเลือก
openfiles | คลิป
openfiles / query / FO LIST | clip openfiles / query / FO CSV | clip
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการคัดลอกเอาต์พุตพรอมต์คำสั่งไปยังคลิปบอร์ดหรือบันทึกผลลัพธ์ไปยังไฟล์ตรวจสอบบทความ วิธีการคัดลอกข้อความพรอมต์คำสั่งส่งข้อความไปยังคลิปบอร์ดหรือบันทึกเป็นไฟล์?
ในการค้นหาว่าไฟล์ใดไฟล์หนึ่งกำลังถูกใช้งานโดยโปรแกรม (และรู้ว่าโปรแกรมใด) คุณสามารถใช้บรรทัดคำสั่งต่อไปนี้
openfiles | findstr / i
ตัวอย่าง:
openfiles | findstr / ฉันไอเฟล
คำสั่งข้างต้นแสดงรายการไฟล์ที่เปิดทั้งหมดที่มีคำว่า "eiffel" ในชื่อไฟล์ ในตัวอย่างนี้ Word 2016 กำลังล็อคไฟล์ "The Eiffel Tower.docx" (ID 4576)
และกล่องโต้ตอบ“ File In Use” บอกฉันแบบเดียวกัน
ตัดการเชื่อมต่อไฟล์ที่เปิดจากระยะไกลจากโฟลเดอร์แชร์
หากต้องการยกเลิกการเชื่อมต่อไฟล์ที่เปิดจากโฟลเดอร์ที่แชร์เพื่อให้คุณสามารถลบเปลี่ยนชื่อไฟล์หรือแก้ไขเนื้อหาให้ใช้พารามิเตอร์ /disconnect
เพื่อตัดการเชื่อมต่อไปยังไฟล์นั้น นี่คือตัวเลือกบรรทัดคำสั่ง
OPENFILES / Disconnect [/ S system [/ ชื่อผู้ใช้ U / P [รหัสผ่าน]]] {[/ ID id] [/ A accessby] [/ O openmode]} [/ OP openfile] คำอธิบาย: เปิดใช้งานผู้ดูแลระบบเพื่อยกเลิกการเชื่อมต่อไฟล์ และโฟลเดอร์ที่เปิดจากระยะไกลผ่านโฟลเดอร์ที่ใช้ร่วมกัน รายการพารามิเตอร์: ระบบ / S ระบุระบบรีโมตที่จะเชื่อมต่อ / U [domain \] user ระบุบริบทของผู้ใช้ภายใต้คำสั่งที่ควรดำเนินการ / P [รหัสผ่าน] ระบุรหัสผ่านสำหรับบริบทผู้ใช้ที่กำหนด / ID id ระบุเพื่อยกเลิกการเชื่อมต่อไฟล์ที่เปิดอยู่ด้วย ID ไฟล์ อาจใช้สัญลักษณ์แทน "*" / A accessby ระบุเพื่อยกเลิกการเชื่อมต่อไฟล์ที่เปิดทั้งหมดด้วยค่า "accessby" อาจใช้สัญลักษณ์แทน "*" / O openmode ระบุเพื่อยกเลิกการเชื่อมต่อไฟล์ที่เปิดอยู่ทั้งหมดด้วยค่า "openmode" ค่าที่ถูกต้องคืออ่านเขียนหรืออ่าน / เขียน อาจใช้สัญลักษณ์แทน "*" / OP openfile ระบุเพื่อยกเลิกการเชื่อมต่อไฟล์ที่เปิดทั้งหมดที่สร้างโดยชื่อ "open file" ที่ระบุ อาจใช้สัญลักษณ์แทน "*" /? แสดงข้อความช่วยเหลือนี้ ตัวอย่าง: OPENFILES / Disconnect /? OPENFILES / Disconnect / ID 1 OPENFILES / Disconnect / A ชื่อผู้ใช้ OPENFILES / Disconnect / O อ่าน / เขียน OPENFILES / Disconnect / OP "c: \ My Documents \ somedoc.doc" / ID 234 OPENFILES / Disconnect / S system / U ชื่อผู้ใช้ / ID 5 OPENFILES / Disconnect / S system / ชื่อผู้ใช้ U / รหัสผ่าน P / ID *
Openfiles.exe จะทำหน้าที่แสดงรายการไฟล์ที่เปิดอยู่ทั้งหมดพร้อมกับชื่อกระบวนการอย่างสมบูรณ์แบบ แต่ไม่สามารถบังคับกระบวนการฆ่าได้ อย่างไรก็ตามเครื่องมือคอนโซลในตัวที่ยอดเยี่ยม (แต่มองข้าม) นี้มีประโยชน์เมื่อคุณต้องการค้นหาชื่อกระบวนการที่กำลังใช้ไฟล์อย่างรวดเร็วหรือยกเลิกการเชื่อมต่อไฟล์ที่เข้าถึงผ่านโฟลเดอร์ที่แชร์โดยผู้ใช้เครือข่าย - โดยไม่ขึ้นอยู่กับ ในโซลูชันของบุคคลที่สาม
5. OpenedFilesView
OpenedFilesView จาก Nirsoft จะแสดงรายการไฟล์ที่เปิดทั้งหมดในระบบของคุณ สำหรับไฟล์ที่เปิดแต่ละไฟล์ข้อมูลเพิ่มเติมจะปรากฏขึ้น: ค่าการจัดการการเข้าถึงการอ่าน / เขียน / ลบตำแหน่งไฟล์กระบวนการที่เปิดไฟล์และอื่น ๆ ... ทางเลือกคุณสามารถปิดไฟล์ที่เปิดอย่างน้อยหนึ่งไฟล์หรือปิดกระบวนการที่ เปิดไฟล์เหล่านี้
คุณสามารถปิดกระบวนการของไฟล์ที่เลือกหรือปิดการจัดการไฟล์ที่เลือก หมายเลขอ้างอิงถูกแสดงในค่าเลขฐานสิบหกในขณะที่เครื่องมือคอนโซล openfiles.exe แสดงในรูปแบบปกติ เครื่องมือนี้ยังให้คุณเพิ่มตัวเลือกเมนูบริบทเพื่อค้นหากระบวนการที่กำลังใช้ไฟล์อย่างรวดเร็วผ่านทางเมนูคลิกขวา ตัวเลือกเมนูบริบท / การสนับสนุนบรรทัดคำสั่งฉันถือว่าเป็นหนึ่งในคุณสมบัติที่มีประโยชน์ที่สุดที่เสนอโดย OpenedFilesView