คุณจะพบว่ากระบวนการเก็บไฟล์เปิดใน Windows ได้อย่างไร


515

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

มีข้อเสนอแนะเกี่ยวกับวิธีหาผู้กระทำผิดหรือไม่?


12
คุณคงคิดว่าหลังจากนี้มาตลอดพวก Windows จะให้เราทำสิ่งนี้ได้อย่างง่ายดายจากใน Explorer ฉันสงสัยว่าทำไมสิ่งนี้ถึงไม่เกิดขึ้น?
Cawflands

6
ฉันพบว่า Explorer มักเป็นกระบวนการที่มีปัญหากับไฟล์โดยไม่มีเหตุผลที่ชัดเจน
Eddie

ฉันรู้ว่านี่ไม่ได้ช่วยอะไรคุณมาก แต่ฉันคิดว่าฉันจำได้ว่านี่เป็นคุณสมบัติตามแผนของ Windows รุ่นถัดไปหลังจากเซิร์ฟเวอร์ vista และ 2008 หรืออาจเป็นสิ่ง WinFS ไม่แน่ใจว่าฉันอ่านตรงไหน ...
คิ

ดูคำตอบของฉันเกี่ยวกับsuperuser ที่นี่โดยสรุปOpenedFilesViewยังคงใช้งานได้ในปี 2019
Vijay

คำตอบ:


440

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

ในการค้นหาไฟล์เฉพาะใช้ตัวเลือกเมนูFind->Find Handle or DLL... พิมพ์ในส่วนของพา ธ ไปยังไฟล์ รายการกระบวนการจะปรากฏด้านล่าง

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

  • c:\Program Files\SysinternalsSuite>handle.exe |findstr /i e:\ - ค้นหาไฟล์ทั้งหมดที่เปิดจากไดรฟ์ E:
  • c:\Program Files\SysinternalsSuite>handle.exe |findstr /i file-or-path-in-question

17
คุณสามารถปิดที่จับได้ แต่โปรดจำไว้ว่าคุณกำลังดึงพรมออกมาจากใต้แอปพลิเคชันผลลัพธ์ที่คาดเดาไม่ได้จะดีที่สุด
WaldenL

12
@ Walden: แน่นอน YMMV ด้วย WinXP ฉันมีหลายครั้งที่ Explorer เปิดตัวจัดการโดยไม่มีเหตุผลที่ชัดเจนและปฏิเสธที่จะปิด เมื่อสิ่งนี้เกิดขึ้นกับไฟล์ที่คุณต้องการลบคุณมีทางเลือกในการบังคับให้ด้ามจับปิดหรือรีบูต จนถึงตอนนี้ฉันได้ทำหลายสิบครั้งแล้วฉันไม่ได้รับผลกระทบใด ๆ เช่นเดียวกับเครื่องมือขั้นสูงใด ๆ ให้ใช้ด้วยความระมัดระวังและวิจารณญาณ
Eddie

5
การปิดที่จับอาจทำให้แอปกลับมาใช้ที่จับบนไฟล์อื่นทำให้เกิดความเสียหาย - ดูคำตอบของ Jeff ด้านล่าง: serverfault.com/a/15695/79266 ... ปลอดภัยกว่ามากที่จะฆ่าแอปพลิเคชันที่เปิดไฟล์ถ้าคุณปลอดภัยกว่า ไม่ต้องการรีบูท
RichVel

14
สำหรับ explorer, btw, กด ctrl-shift ค้างไว้และคลิกขวาที่พื้นที่ว่างของเมนู start และคุณจะได้รับ "Exit Explorer" - ps, ไม่ใช่คำตอบของ Jeff เลย ..
Mark Sowul

2
มันไม่ได้ช่วยให้ไฟล์ที่ไม่ใช่ผู้บริหาร ig ไฟล์ข้อความ ฉันต้องรู้ว่าใครกำลังเขียนไฟล์บันทึก ความคิดใด ๆ
Xaqron

183

คุณสามารถใช้ตรวจสอบทรัพยากรสำหรับเรื่องนี้ที่มาในตัวกับ Windows 7, 8, และ 10

  1. เปิดการตรวจสอบทรัพยากรซึ่งสามารถพบได้
    • โดยค้นหาResource Monitorหรือ resmon.exeในเมนู Start หรือ
    • เป็นปุ่มบนแท็บประสิทธิภาพในตัวจัดการงานของคุณ
  2. ไปที่แท็บCPU
  3. ใช้ช่องค้นหาในส่วนจับที่เกี่ยวข้อง
    • ดูลูกศรสีน้ำเงินในภาพหน้าจอด้านล่าง

เมื่อคุณพบที่จับแล้วคุณสามารถระบุกระบวนการได้โดยดูที่คอลัมน์รูปภาพและ / หรือ PID

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

ภาพหน้าจอการตรวจสอบทรัพยากร

คัดลอกมาจากคำตอบเดิมของฉัน: https://superuser.com/a/643312/62


2
เป็นเรื่องที่น่าสังเกตว่ามันยากที่จะหาโปรแกรมนี้ใน Windows 8 - การค้นหา 'resmon.exe' ควรค้นหา
Kylotan

4
@Kylotan หยุดค้นหาเวลาเสีย เพียงวิ่งresmon ตรงจาก cmd
Pacerier

1
@Pacerier: ดี ฉันไม่คุ้นเคยกับสิ่งต่าง ๆ ที่อยู่ในเส้นทางของ Windows
Kylotan

สิ่งนี้เหมาะกับฉันดีกว่า 'จับ | ทางเลือกของ FindStr 'และ' Unlocker 'ถึงแม้ว่ามันจะมีประสิทธิภาพเช่นกัน
Marcus Vinicius Pompeu

4
ยังคงใช้ได้ใน Windows 10 และสามารถพบได้โดยใช้ปุ่ม "เปิดการตรวจสอบทรัพยากร" ภายในตัวจัดการงาน -> แท็บประสิทธิภาพ
Norman Breau

92

ลองใช้คำสั่งopenfiles


10
+1 สำหรับคำสั่ง builtin แม้ว่าฉันจะใช้ ProcessExplorer เป็นการส่วนตัวตลอดเวลา
RBerteig

มีประโยชน์จริงๆ
marko

7
ข้อผิดพลาด: ระบบเป้าหมายต้องใช้งานระบบปฏิบัติการ 32 บิต
Bozojoe

4
ไม่ทำงานกับ 64 OS!

12
สิ่งนี้ดูเหมือนจะใช้งานได้กับ Windows 2012R2 64 บิต แต่คุณต้องเปิดใช้งานบริการ "open local tracking" โดยการเรียกใช้openfiles /local onและรีสตาร์ท ทำให้คุณสมบัตินี้มีประโยชน์ไม่มาก
Guss

82

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

ดูโพสต์ของ Raymond Chenในหัวข้อนี้

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

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

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

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


12
คำเตือนสำคัญ, สิ่งนี้ควรเข้าไปใกล้ด้านบนสุด - การรีบูตอาจดีกว่าไฟล์ที่เสียหายอย่างเงียบ ๆ
RichVel

6
+1 นี่จะทำให้ฉันคิดว่าสองครั้งเกี่ยวกับการบังคับให้จับปิด! ฉันคิดว่าแปลกที่ Windows จะใช้หมายเลขของหมายเลขอ้างอิงที่ปิดอีกครั้งทันทีแทนที่จะเพิ่มจำนวนและดำเนินการต่อเมื่อจำเป็นเท่านั้น อย่างน้อยก็จะช่วยลดโอกาสในการเกิดปัญหานี้ได้อย่างมาก
EM0

1
@RichVel การยุติกระบวนการผู้ร้ายน่าจะดีกว่าการรีบูททั้งหมด
Dmitry Grigoryev

@DmitryGrigoryev - จุดดีและในความเป็นจริงฉันได้กล่าวแล้วว่าที่นี่
RichVel

2
นี่เป็นคำเตือนที่สำคัญมาก แต่ไม่ตอบคำถามคุณจะพบกระบวนการที่มีไฟล์เปิดอยู่ใน Windows ได้อย่างไร
Ploni

29

ฉันเคยใช้แฮ็คด้วยความสำเร็จเพื่อค้นหากระบวนการดังกล่าวในอดีต


3
ฉันใช้เครื่องมือนี้ตลอดเวลา ถ้าฉันไม่สามารถนำไดรฟ์ USB ออกฉันก็แค่พิมพ์ "handle H:" (หรือตัวอักษรอะไรก็ได้) คุณสามารถใช้มันเพื่อบังคับให้จับปิดได้
คริส ธ อมป์สัน



7

เพียงชี้แจงนี้เป็นไปได้มากว่าเป็นผลมาจากแอปของบุคคลที่สามที่ไม่ได้ใช้งานการเรียกCreateFile API อย่างถูกต้องมากกว่าที่จะเป็นอะไรใน Windows อาจเป็นผลมาจากการออกแบบของ CreateFile แต่เสร็จแล้วและเราไม่สามารถย้อนกลับได้

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

ตอนนี้ถ้า Explorer ดูเหมือนจะเป็นผู้กระทำผิดที่นี่อาจเป็นกรณีที่อยู่บนพื้นผิวและผู้ร้ายตัวจริงคือสิ่งที่ติดตั้งส่วนขยายของเชลล์ที่เปิดไฟล์ทั้งหมดในโฟลเดอร์ตามวัตถุประสงค์ของตัวเอง gung-ho ในการทำเช่นนั้นหรือที่ไม่ได้ทำความสะอาดอย่างถูกต้องหลังจากตัวเอง Symantec AV เป็นสิ่งที่ฉันเคยเห็นมาก่อนหน้านี้และฉันจะไม่แปลกใจหากโปรแกรม AV อื่น ๆ ก็ถูกตำหนิเช่นกัน ปลั๊กอินของตัวควบคุมแหล่งข้อมูลอาจผิดปกติ

ดังนั้นไม่ใช่คำตอบจริงๆ แต่เพียงคำแนะนำที่ไม่โทษ Windows สำหรับสิ่งที่อาจเป็นโปรแกรมของบุคคลที่สามที่เขียนไม่ดี (สิ่งที่อาจเกิดขึ้นกับระบบปฏิบัติการอื่น ๆ ที่มีการล็อคไฟล์โดยนัย แต่ระบบปฏิบัติการยูนิกซ์ใด ๆ ค่าเริ่มต้น).


1
ฉันจะไม่ตำหนิแอปของบุคคลที่สามเนื่องจากความจริงที่ว่า windows explorer ของฉันล็อคไฟล์ Thumbs.db ในไดเรกทอรีการทำงานเสมอ แต่จะไม่ปลดล็อกเสมอเมื่อฉันเปลี่ยนไดเรกทอรีการทำงาน อย่างน้อยพวกเขาจะถูกปลดล็อคเมื่อฉันปิดหน้าต่างฉันไม่ต้องฆ่านักสำรวจทั้งหมด ...
Alexander

@Darth คุณเป็นนักการตลาดจาก Microsoft หรือไม่
Pacerier

6

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


ทำไมจึงมีคำตอบที่ซับซ้อนเช่นนั้น
Rohit Gupta

6

Apropos Explorer เปิดไฟล์ค้างไว้: "เมื่อสิ่งนี้เกิดขึ้นกับไฟล์ที่คุณต้องการลบคุณมีทางเลือกในการบังคับให้ด้ามจับปิดหรือรีบูต"

คุณสามารถจบ Explorer ได้

หากนี่เป็นสิ่งที่เกิดขึ้นครั้งเดียว (โดยปกติแล้ว Explorer จะไม่เปิดไฟล์นี้) ฉันจะเดาออกจากระบบและการเข้าสู่ระบบอีกครั้งจะทำเคล็ดลับ

มิฉะนั้นฆ่ากระบวนการเดสก์ทอป desktop และทำสิ่งที่คุณต้องการในขณะที่มันหายไป ก่อนอื่นให้เริ่มสำเนาของ cmd.exe (คุณต้องมี UI เพื่อทำการล้างข้อมูลที่ต้องการ) ตรวจสอบให้แน่ใจว่าไม่มี Explorers ที่ไม่ใช่เดสก์ทอปทำงาน จากนั้นฆ่า Explorer สุดท้ายด้วยเช่น Task Manager ทำสิ่งที่คุณต้องการในพรอมต์คำสั่ง ในที่สุดให้เรียกใช้ Explorer จากพรอมต์คำสั่งแล้วมันจะกลายเป็นเดสก์ท็อป

ฉันเดาว่าอาจมีความไม่พอใจที่เหลืออยู่หากโปรแกรม systray บางโปรแกรมไม่สามารถจัดการกับการรีสตาร์ทเชลล์ได้


1
วิธีนี้ปลอดภัยกว่าการปิดหมายเลขอ้างอิงและก่อกวนน้อยกว่าการบูตเครื่องใหม่ นำไปใช้กับโปรแกรมอื่น ๆ ด้วย - ฉันมักจะพบว่าโปรแกรม Microsoft Office เก็บล็อกไฟล์ไว้แม้ว่าฉันจะปิดมันแล้วก็ตาม
RichVel

5

ไฟล์สามารถถูกล็อคได้โดยกระบวนการโลคัล ( unlockerเป็นเครื่องมือที่ใช้) และโดยการเข้าถึงไฟล์ที่เข้ามาผ่านการแชร์

มีฟังก์ชั่นบิวท์อินใน Windows ที่แสดงให้คุณเห็นว่าไฟล์ใดในคอมพิวเตอร์ท้องถิ่นที่เปิด / ล็อคโดยคอมพิวเตอร์ระยะไกล (ซึ่งเปิดไฟล์ผ่านการแชร์ไฟล์):

* Select "Manage Computer" (Open "Computer Management")
* click "Shared Folders"
* choose "Open Files"

คุณสามารถปิดไฟล์ได้อย่างแน่นหนา




2

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

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

หากเกิดขึ้นตัวเลือกของคุณ (เท่าที่ฉันทราบ) คือการรีสตาร์ท - หรือลืมทำอะไรกับไฟล์นั้น


0

ฉันได้เปิดใช้งานตัวจัดการงาน Extenededเมื่อไม่นานมานี้โดยบล็อกของ Jeremy Zawodny และมันก็เยี่ยมมากสำหรับการติดตามข้อมูลเพิ่มเติมเกี่ยวกับกระบวนการต่างๆ +1 สำหรับ Process Explorer ดังกล่าวข้างต้นโดยเฉพาะอย่างยิ่งสำหรับการฆ่ากระบวนการที่ Task Manager มาตรฐานจะไม่สิ้นสุด


0

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


1
เวอร์ชันที่อัปเดตนี้คือการตรวจสอบกระบวนการ คุณสามารถรับได้ที่นี่: http://technet.microsoft.com/en-us/sysinternals/bb896645
yitwail
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.