Câu hỏi Làm thế nào để bạn tìm thấy những gì quá trình đang nắm giữ một tập tin mở trong Windows?


Một điều làm tôi băn khoăn không có kết thúc về Windows là cái cũ chia sẻ không đúng cách lỗi. Thường thì bạn không thể xác định những gì đang mở nó. Thông thường nó chỉ là một trình soạn thảo hoặc thám hiểm chỉ trỏ đến một thư mục có liên quan nhưng đôi khi tôi đã phải nghỉ mát để khởi động lại máy tính của tôi.

Bất kỳ đề xuất về cách tìm thủ phạm?


478
2018-05-01 00:47


gốc


Bạn sẽ nghĩ rằng sau khi tất cả thời gian này, các chàng trai Windows sẽ cung cấp cho chúng tôi một cách để làm điều này một cách dễ dàng từ bên trong Explorer. Tôi tự hỏi tại sao điều này đã không xảy ra? - Cawflands
Tôi thấy rằng Explorer rất thường là quá trình vấn đề đang nắm giữ lên một tập tin không có lý do rõ ràng. - Eddie
Tôi biết điều này không giúp bạn nhiều, nhưng tôi nghĩ rằng tôi nhớ rằng đây là một tính năng được lên kế hoạch cho bản phát hành Windows tiếp theo sau máy chủ vista và 2008. hoặc có thể đó là một điều WinFS. không chắc nơi tôi đọc ... - Kip


Các câu trả lời:


Tôi đã thành công với Sysinternals  Process Explorer. Với điều này, bạn có thể tìm kiếm để tìm những gì process (es) có một tập tin mở, và bạn có thể sử dụng nó để đóng xử lý (s) nếu bạn muốn. Tất nhiên, an toàn hơn để đóng toàn bộ quá trình. Thận trọng và phán xét.

Để tìm một tệp cụ thể, hãy sử dụng tùy chọn trình đơn Find->Find Handle or DLL...  Nhập một phần của đường dẫn đến tệp. Danh sách các quy trình sẽ xuất hiện bên dưới.

Nếu bạn thích dòng lệnh, bộ Sysinternals bao gồm công cụ dòng lệnh Xử lý, liệt kê các chốt mở. Một vài ví dụ về cách sử dụng nó:

  • c:\Program Files\SysinternalsSuite>handle.exe |findstr /i e:\ - Tìm tất cả các tệp được mở từ ổ E:
  • c:\Program Files\SysinternalsSuite>handle.exe |findstr /i file-or-path-in-question

417
2018-05-01 01:03



Bạn có thể đóng tay cầm, nhưng hãy nhớ, bạn đang kéo tấm thảm ra khỏi một ứng dụng, kết quả sẽ không thể đoán trước được. - WaldenL
@ Walden: Tuyệt đối. YMMV. Với WinXP, tôi đã nhiều lần Explorer mở một xử lý không có lý do rõ ràng và từ chối đóng nó lại. Khi điều này xảy ra trên một tập tin bạn cần xóa, bạn có thể lựa chọn buộc đóng tay cầm, hoặc khởi động lại. Cho đến nay, đã làm điều này hàng chục lần, tôi đã không bị ảnh hưởng xấu. Như với bất kỳ công cụ nâng cao nào, hãy sử dụng cẩn thận và phán xét. - Eddie
Đóng chốt xử lý có thể khiến ứng dụng sử dụng lại tay cầm trên một tệp khác, gây ra tham nhũng - xem câu trả lời của Jeff bên dưới: serverfault.com/a/15695/79266 ... an toàn hơn nhiều khi giết ứng dụng đang giữ tệp đang mở, nếu bạn không muốn khởi động lại. - RichVel
Đối với trình khám phá, btw, giữ ctrl-shift và nhấp chuột phải vào vùng trống của menu bắt đầu và bạn sẽ nhận được "Thoát Explorer" - ps, không hoàn toàn là câu trả lời của Jeff .. - Mark Sowul
Nó không giúp cho tập tin phi điều hành i.g. một tệp văn bản. Tôi cần phải biết ai đang viết cho một tệp nhật ký. Bất kỳ ý tưởng? - Xaqron


Đối với Windows 7, Windows 8 và Windows 10, bạn có thể sử dụng tính năng tích hợp sẵn Giám sát tài nguyên cho điều này.

  1. Mở Giám sát tài nguyên, có thể được tìm thấy
    • Bằng cách tìm kiếm resmon.exe trong menu bắt đầu hoặc
    • Như một nút trên Hiệu suất tab trong Quản lý công việc
  2. Chọn hộp kiểm bên cạnh Hình ảnh hướng đến Quy trình section (Các tiến trình đã chọn sẽ hiển thị các xử lý tập tin của chúng bên dưới.)
  3. Sử dụng trường tìm kiếm trong Liên quan xử lý phần trên CPU chuyển hướng
    • Được trỏ vào bằng mũi tên màu xanh lam trong ảnh chụp màn hình bên dưới

Trong trường hợp nó không rõ ràng, khi bạn đã tìm thấy các xử lý, bạn có thể xác định quá trình bằng cách nhìn vào hình ảnh và / hoặc cột PID.

Sau đó bạn có thể đóng ứng dụng nếu bạn có thể làm điều đó, hoặc chỉ cần nhấp chuột phải vào hàng và bạn sẽ nhận được tùy chọn giết chết quá trình ngay tại đó. Dễ như ăn bánh!

Resource Monitor screenshot

Đã sao chép từ câu trả lời ban đầu của tôi: https://superuser.com/a/643312/62


147
2017-09-10 11:48



Cần lưu ý rằng khó có thể tìm thấy chương trình này trên Windows 8 - tìm kiếm 'resmon.exe' nên tìm nó. - Kylotan
@Kylotan, Đừng lãng phí thời gian tìm kiếm. Chỉ cần chạy resmon  trực tiếp từ cmd - Pacerier
@Pacerier: Nice. Tôi không quen với những thứ nằm trong đường dẫn Windows. - Kylotan
Điều này phù hợp với tôi tốt hơn 'Xử lý | Các lựa chọn thay thế FindStr 'và' Unlocker ', mặc dù chúng cũng hiệu quả - Marcus Vinicius Pompeu
Vẫn còn hợp lệ trong Windows 10 và có thể được tìm thấy bằng cách sử dụng nút "Open Resource Monitor" bên trong Task Manager -> Performance tab. - Norman Breau


Thử mở tập tin chỉ huy.


81
2018-05-01 01:18



1 cho lệnh nội trang, mặc dù cá nhân tôi sử dụng ProcessExplorer trong hầu hết thời gian này. - RBerteig
Thực sự hữu ích. - marko
L ERI: Hệ thống đích phải chạy hệ điều hành 32 bit. - Bozojoe
không hoạt động với 64 HĐH! - Jarrod Roberson
Điều này có vẻ làm việc cho Windows 2012R2 64 bit, nhưng bạn cần phải kích hoạt dịch vụ "theo dõi cục bộ mở" bằng cách chạy openfiles /local on và khởi động lại. Điều này làm cho tính năng này không hữu ích lắm. - Guss


Chỉ cần rất cẩn thận với chốt đóng; nó thậm chí còn nguy hiểm hơn bạn nghĩ, bởi vì xử lý tái chế - nếu bạn đóng tập tin xử lý, và chương trình mở ra cái gì khác, tập tin gốc mà bạn đã đóng có thể được tái sử dụng cho "cái gì khác". Và bây giờ hãy đoán xem điều gì sẽ xảy ra nếu chương trình tiếp tục, nghĩ rằng nó đang làm việc trên tệp (mà bạn đã xử lý), khi thực tế việc xử lý tệp hiện trỏ đến một thứ khác.

xem Bài đăng của Raymond Chen về chủ đề này

Giả sử dịch vụ chỉ mục tìm kiếm có tệp mở để lập chỉ mục nhưng có   bị kẹt tạm thời và bạn muốn xóa tệp, vì vậy bạn   (không chính xác) lực đóng tay cầm. Dịch vụ chỉ mục tìm kiếm mở ra   tệp nhật ký để ghi lại một số thông tin và xử lý cho   tệp đã xóa được tái chế dưới dạng xử lý cho tệp nhật ký. Các bị mắc kẹt   hoạt động cuối cùng đã hoàn thành và dịch vụ chỉ mục tìm kiếm cuối cùng cũng được   xung quanh để đóng cửa mà xử lý nó đã mở, nhưng nó kết thúc lên vô tình   đóng chốt xử lý tệp nhật ký.

Dịch vụ chỉ mục tìm kiếm mở một dịch vụ khác   tệp, hãy nói tệp cấu hình để viết để có thể cập nhật một số tệp   trạng thái liên tục. Xử lý cho tệp nhật ký được tái chế như   xử lý cho tệp cấu hình. Dịch vụ chỉ mục tìm kiếm muốn   đăng nhập một số thông tin, vì vậy nó ghi vào tệp nhật ký của nó. thật không may   đăng nhập tập tin xử lý đã được đóng lại và xử lý tái sử dụng cho cấu hình của nó   tập tin. Thông tin đã đăng nhập vào tệp cấu hình,   làm hỏng nó.

Trong khi đó, một xử lý khác mà bạn buộc phải đóng đã được sử dụng lại   như một xử lý mutex, được sử dụng để giúp ngăn chặn dữ liệu khỏi bị   bị hỏng. Khi xử lý tập tin ban đầu được đóng, xử lý mutex   bị đóng và các biện pháp bảo vệ chống tham nhũng dữ liệu bị mất. Các   dịch vụ càng dài, càng nhiều chỉ số của nó bị hỏng.   Cuối cùng, ai đó nhận thấy chỉ mục đang trả lại kết quả không chính xác.   Và khi bạn cố gắng khởi động lại dịch vụ, nó không thành công vì nó   tệp cấu hình đã bị hỏng.

Bạn báo cáo sự cố với   công ty tạo dịch vụ chỉ mục tìm kiếm và họ xác định rằng   chỉ mục đã bị hỏng, tệp nhật ký đã dừng lại một cách bí ẩn   ghi nhật ký và tệp cấu hình đã bị ghi đè bằng rác. Một số   kỹ thuật viên nghèo được giao nhiệm vụ vô vọng để tìm ra lý do tại sao   dịch vụ làm hỏng các chỉ mục và các tệp cấu hình của nó, không biết rằng   nguồn tham nhũng là bạn buộc phải đóng một tay cầm.


76
2018-05-30 17:04



cảnh báo quan trọng, điều này sẽ đi gần hơn đầu - khởi động lại có lẽ tốt hơn một tệp âm thầm bị hỏng. - RichVel
+1 Điều này chắc chắn sẽ làm cho tôi suy nghĩ hai lần về việc xử lý đóng cửa! Có vẻ lạ với tôi rằng Windows sẽ ngay lập tức sử dụng lại số lượng của một chốt đóng, thay vì tiếp tục tăng số lượng và chỉ gói xung quanh khi cần thiết. Điều đó sẽ ít nhất làm giảm đáng kể khả năng xảy ra vấn đề này. - EM0
@RichVel Chấm dứt quy trình thủ phạm có lẽ tốt hơn là khởi động lại hoàn toàn. - Dmitry Grigoryev
@ DmitryGrigoryev - điểm tốt, và trên thực tế, tôi đã đề cập rằng đây - RichVel
Đây là một cảnh báo rất quan trọng, nhưng không trả lời câu hỏi Làm thế nào để bạn tìm thấy những gì quá trình đang nắm giữ một tập tin mở trong Windows? - Ploni


Tôi đã sử dụng Xử lý với thành công để tìm các quy trình như vậy trong quá khứ.


27
2018-05-01 00:52



Tôi sử dụng công cụ này mọi lúc. Nếu tôi không thể đẩy một ổ đĩa USB, tôi chỉ cần gõ "xử lý H:" (hoặc bất kỳ ký tự ổ đĩa nào). Hay nhất của tất cả, bạn có thể sử dụng nó để buộc xử lý chặt chẽ. - Chris Thompson


Ai khóa tôi hoạt động tốt và giữ cho mọi người thích thú với tên!


7
2018-05-06 00:43



Không hoạt động trong Windows 8 và 10 64 bit. - rustyx


Chỉ cần làm rõ, điều này có nhiều khả năng là kết quả của việc sử dụng các ứng dụng của bên thứ ba không đúng cách CreateFile API gọi chính xác hơn là bất kỳ thứ gì trong chính Windows. Có lẽ đó là một hệ quả của thiết kế của CreateFile, nhưng thực hiện xong và chúng ta không thể quay trở lại.

Về cơ bản khi mở một tệp trong chương trình Windows, bạn có tùy chọn chỉ định cờ cho phép truy cập được chia sẻ. Nếu bạn không chỉ định cờ, chương trình sẽ truy cập độc quyền tệp.

Bây giờ, nếu Explorer có vẻ là thủ phạm ở đây, có thể đó là trường hợp trên bề mặt và thủ phạm thực sự là thứ cài đặt tiện ích mở rộng vỏ mở tất cả các tệp trong thư mục vì mục đích riêng của nó nhưng cũng vậy gung-ho trong khi làm như vậy, hoặc điều đó không làm sạch chính xác sau khi chính nó. Symantec AV là thứ tôi đã từng làm trước đây, và tôi sẽ không ngạc nhiên nếu các chương trình AV khác cũng bị đổ lỗi. Plug-in kiểm soát nguồn cũng có thể bị lỗi.

Vì vậy, không thực sự là một câu trả lời, nhưng chỉ một số lời khuyên không phải lúc nào cũng đổ lỗi cho Windows vì có thể là chương trình bên thứ 3 được viết sai (một thứ gì đó cũng có thể xảy ra trên bất kỳ hệ điều hành nào khác có khóa tệp ẩn, nhưng bất kỳ hệ điều hành Unix nào cũng có quyền truy cập chia sẻ mặc định).


7
2017-10-12 14:27



Tôi sẽ không đổ lỗi cho một ứng dụng của bên thứ ba trên thực tế là cửa sổ của tôi thám hiểm luôn luôn khóa Thumbs.db tập tin trong thư mục làm việc của nó, nhưng không phải luôn luôn mở khóa nó khi tôi chuyển đổi thư mục làm việc. Ít nhất chúng được mở khóa khi tôi đóng cửa sổ, tôi không phải giết TẤT CẢ những người khám phá ... - Alexander
@ Darth, Bạn có phải là nhà tiếp thị từ Microsoft không? - Pacerier