Πώς να προσδιορίσετε τη διαδικασία που έχει κλειδώσει ένα αρχείο στα Windows

Όταν προσπαθείτε να διαγράψετε ένα αρχείο ή φάκελο που χρησιμοποιείται από μια διεργασία, εμφανίζεται το παράθυρο διαλόγου File In Use που δείχνει το όνομα του προγράμματος που έχει κλειδώσει το αρχείο.

Ωστόσο, υπάρχουν περιπτώσεις όπου το παράθυρο διαλόγου "Αρχείο σε χρήση" δεν εμφανίζει το όνομα της διαδικασίας που έχει ένα κλείδωμα στο αρχείο που προσπαθείτε να διαγράψετε. Σε ορισμένες περιπτώσεις, το παράθυρο διαλόγου θα εμφανίσει "η ενέργεια δεν μπορεί να ολοκληρωθεί επειδή το αρχείο είναι ανοιχτό άλλη διαδικασία“.

Βρείτε ποια διαδικασία έχει κλειδώσει ένα αρχείο

Για τη διερεύνηση διαδικασιών και κλειδωμένων αρχείων, ο Windows Sysinternals Process Explorer είναι ίσως η πρώτη επιλογή που έρχεται στο μυαλό των περισσότερων χρηστών. Ωστόσο, υπάρχουν δύο ενσωματωμένες λύσεις για να εμφανίσετε την τρέχουσα λίστα ανοιχτών αρχείων μαζί με τα αντίστοιχα ονόματα διεργασιών.

Βρείτε ποια διαδικασία έχει κλειδώσει ένα αρχείο χρησιμοποιώντας:

  1. Παρακολούθηση πόρων (resmon.exe)
  2. Process Explorer από το Microsoft Sysinternals
  3. Χειριστείτε από το Microsoft Sysinternals
    • Βρείτε τη λαβή αρχείου μέσω του μενού με το δεξί κλικ
  4. Εργαλείο ενσωματωμένης κονσόλας Openfiles.exe
    • Ενεργοποιήστε την παρακολούθηση των χειρισμών τοπικών αρχείων
    • Προβολή ανοιχτών αρχείων και των αντίστοιχων ονομάτων διεργασιών
    • Αποσυνδέστε τα αρχεία που ανοίγουν από κοινόχρηστους φακέλους
  5. OpenedFilesView από το Nirsoft.net (3ο μέρος)

1. Παρακολούθηση πόρων

Το Resource Monitor (resmon.exe) είναι ένα ενσωματωμένο εργαλείο που έχει πολλές χρήσιμες λειτουργίες. Με την Παρακολούθηση Πόρων, μπορείτε παρακολουθείτε την τρέχουσα χρήση του δικτύου και του Διαδικτύου, προβολή σχετικών λαβών για κλειδωμένα αρχεία, καθώς και να διαχειριστείτε τις διαδικασίες ακριβώς όπως θα κάνατε χρησιμοποιώντας τη Διαχείριση εργασιών.

Για να βρείτε το όνομα της διαδικασίας που έχει κλειδωμένο αρχείο, κάντε κλικ στην καρτέλα CPU, πληκτρολογήστε το όνομα αρχείου ή μέρος του στο πλαίσιο κειμένου Συσχετισμένες λαβές.

Βρείτε ποια διαδικασία έχει κλειδώσει ένα αρχείο

Έχουμε καλύψει το Resource Monitor νωρίτερα. Δείτε αυτά τα άρθρα:

  • Πώς να χρησιμοποιήσετε την Παρακολούθηση πόρων για να βρείτε ποια διαδικασία έχει κλειδώσει ένα αρχείο;
  • Ποιο πρόγραμμα χρησιμοποιεί όλο το εύρος ζώνης σας στο Διαδίκτυο; Χρησιμοποιήστε το Resource Monitor για να το βρείτε

2. Εξερεύνηση διεργασιών

Εξερεύνηση διεργασιών δεν χρειάζεται εισαγωγή. Στην Εξερεύνηση διεργασιών, το μόνο που χρειάζεται να κάνετε είναι να χρησιμοποιήσετε τη δυνατότητα Εύρεση και να πληκτρολογήσετε το όνομα του αρχείου. Αυτό δείχνει τη διαδικασία πρόσβασης στο αρχείο.

Βρείτε ποια διαδικασία έχει κλειδώσει ένα αρχείο

Από την προβολή του κάτω παραθύρου, μπορείτε να κλείσετε τη λαβή του αρχείου εάν είναι απαραίτητο.

Πρέπει να εκτελέσετε την Εξερεύνηση διεργασιών ως διαχειριστής για να διαχειριστείτε τις διεργασίες που εκτελούνται ανυψωμένα. Για να ανυψώσετε την Εξερεύνηση διεργασιών, κάντε κλικ στο μενού Αρχείο → Εμφάνιση λεπτομερειών για όλες τις διεργασίες.

Δείτε αυτά τα σχετικά άρθρα του Process Explorer:

  • Πώς να διαγράψετε ένα επίμονο μη διαγράψιμο αρχείο ή φάκελο στα Windows;
  • Βρείτε ποιο πρόγραμμα χρησιμοποιεί την κάμερά σας αυτήν τη στιγμή
  • Πώς να βρείτε ποιο πρόγραμμα προκάλεσε ένα άγνωστο μήνυμα σφάλματος;
  • Τι σημαίνει Αποτυχία απαρίθμησης αντικειμένων στο κοντέινερ;

3. Χειριστείτε από τα Windows Sysinternals

Λαβή είναι ένα βοηθητικό πρόγραμμα από το Microsoft Sysinternals που εμφανίζει πληροφορίες σχετικά με ανοιχτές λαβές για οποιαδήποτε διαδικασία στο σύστημα. Μπορείτε να το χρησιμοποιήσετε για να δείτε τα προγράμματα που έχουν ανοιχτό αρχείο ή για να δείτε τους τύπους αντικειμένων και τα ονόματα όλων των λαβών ενός προγράμματος. Το Handle είναι σαν μια έκδοση γραμμής εντολών Εξερεύνηση διεργασιών.

Σημείωση: Το Handle v4.21 έχει α μικρό ζωύφιο όπου αναφέρει πάντα «Δεν βρέθηκαν ταιριαστές λαβές» εάν το γράμμα της μονάδας είναι με κεφαλαία. Ελπίζουμε η Microsoft να το διορθώσει στην επόμενη ενημέρωση.

Από ένα Γραμμή εντολών διαχειριστή παράθυρο, χρησιμοποιήστε τη σύνταξη της γραμμής εντολών για να βρείτε τη διαδικασία που έχει ανοιχτό το αρχείο:

handle.exe -a -u filename_with_path

Εάν το όνομα του αρχείου περιέχει κενά, περικλείστε το σε διπλά εισαγωγικά.

Παράδειγμα:

handle.exe -a -u "c:\users\ramesh\desktop\Mandate-form.pdf"
βρείτε ποια διαδικασία χειρίζεται το κλειδωμένο αρχείο - sysinternals

(Η αναφορά του ονόματος αρχείου χωρίς τη διαδρομή μπορεί να μην λειτουργεί απαραίτητα σε κάθε περίπτωση. Συνιστάται να συμπεριλαμβάνετε πάντα την πλήρη διαδρομή.)

Η έξοδος δείχνει το όνομα διεργασίας, το αναγνωριστικό διεργασίας, το όνομα χρήστη, το κλειδωμένο (στόχο) όνομα αρχείου με διαδρομή.

Sysinternals Handle: Ορίσματα γραμμής εντολών

χρήση: λαβή [[-a [-l]] [-u] | [-c [-y]] | [-s]] [-p |] [όνομα] [-nobanner]
-ένα Απόρριψη όλων των πληροφοριών λαβής.
-μεγάλο Απλώς εμφανίστε λαβές ενοτήτων που υποστηρίζονται από αρχείο σελίδας.
-ντο Κλείνει την καθορισμένη λαβή (ερμηνεύεται ως δεκαεξαδικός αριθμός).
Πρέπει να καθορίσετε τη διαδικασία από το PID της. ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Το κλείσιμο των λαβών μπορεί να προκαλέσει αστάθεια εφαρμογής ή συστήματος.
Μην ζητήσετε επιβεβαίωση κλεισίματος λαβής.
-μικρό Αριθμός εκτυπώσεων για κάθε τύπο λαβής ανοιχτό.
-u Εμφάνιση του ονόματος χρήστη του ιδιοκτήτη κατά την αναζήτηση λαβών.
Χειρολαβές απόρριψης που ανήκουν στη διεργασία (αποδεκτό μερικό όνομα).
όνομα Αναζήτηση για λαβές σε αντικείμενα με (απόσπασμα αποδεκτό).
-nobanner Μην εμφανίζετε το banner εκκίνησης και το μήνυμα πνευματικών δικαιωμάτων.

Κανένα όρισμα δεν θα απορρίπτει όλες τις αναφορές αρχείων.

Προσθήκη Sysinternals Handle στο μενού δεξί κλικ

Μπορείτε να προσθέσετε το Sysinternals Handle στο μενού με το δεξί κλικ για αρχεία για να βρείτε γρήγορα το πρόγραμμα που έχει κλειδώσει το αρχείο. Για να το προσθέσετε στο μενού περιβάλλοντος, ακολουθήστε τα εξής βήματα:

  1. Κατεβάστε Λαβή από την τοποθεσία Microsoft Sysinternals.
  2. Αντιγράψτε τα αρχεία handle.exe & handle64.exe σε ένα φάκελο – π.χ. δ:\εργαλεία
  3. Αντιγράψτε τις ακόλουθες γραμμές κώδικα στο Σημειωματάριο και αποθηκεύστε το αρχείο ως 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. Εφαρμογή") Ορίστε WshShell = CreateObject("WScript. Κέλυφος") Set objFSO = CreateObject("Scripting. FileSystemObject") Αν WScript. Επιχειρήματα. Count = 0 Στη συνέχεια sBaseKey = "HKCU\Software\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. Ορίσματα (0)) = True Τότε sFilename = lcase (WScript. Ορίσματα (0)) objShell. ShellExecute "cmd.exe", "/k d:\tools\handle.exe -a -u " & _ & sFilename &, "", "runas", 1 Τέλος Εάν. Τέλος εαν

    Σημείωση: Η διαδρομή Sysinternals Handle.exe είναι κωδικοποιημένη ως d:\tools\handle.exe στο παραπάνω σενάριο. Εάν το πρόγραμμα βρίσκεται σε διαφορετική διαδρομή, τροποποιήστε τη διαδρομή στο σενάριο ανάλογα. Για Windows 64-bit, μπορείτε να χρησιμοποιήσετε ένα από τα δύο handle.exe ή handle64.exe

  4. Διπλό κλικ find_handle.vbs για να προσθέσετε την καταχώρηση του μενού περιβάλλοντος στο μητρώο. Θα χρειαστεί να το κάνετε μόνο μία φορά. Ωστόσο, εάν μετακινήσετε το σενάριο σε διαφορετικό φάκελο, θα χρειαστεί να κάνετε διπλό κλικ ξανά για να ενημερώσετε τη διαδρομή στο μητρώο.
  5. θα δεις το Βρείτε τη λαβή επιλογή όταν κάνετε δεξί κλικ σε ένα αρχείο. Κάνοντας κλικ σε αυτό θα εκκινήσει το σενάριο το οποίο με τη σειρά του εκτελεί το handle.exe με το όρισμα όνομα αρχείου για να βρείτε τη διαδικασία που έχει το αρχείο κλειδωμένο.βρείτε ποια διαδικασία χειρίζεται το κλειδωμένο αρχείο - sysinternals

Για να αφαιρέσετε το Βρείτε τη λαβή καταχώρηση μενού περιβάλλοντος, ξεκινήστε τον Επεξεργαστή Μητρώου (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. Αυτό το εργαλείο σάς επιτρέπει επίσης να αποσυνδέσετε ένα ή περισσότερα αρχεία που ανοίγουν απομακρυσμένα από έναν κοινόχρηστο φάκελο.

Ενεργοποιήστε την καθολική σημαία "Διατήρηση λίστας αντικειμένων" για πρώτη φορά

Αρχικά, για να ενεργοποιήσετε την παρακολούθηση των χειρισμών τοπικών αρχείων, πρέπει να ενεργοποιήσετε τη σημαία «διατήρηση λίστας αντικειμένων» εκτελώντας την ακόλουθη εντολή από τη Γραμμή εντολών του διαχειριστή.

openfiles /local on

Θα δείτε το ακόλουθο μήνυμα:

ΠΛΗΡΟΦΟΡΙΕΣ: Η καθολική σημαία συστήματος «διατήρηση λίστας αντικειμένων» είναι αυτήν τη στιγμή ενεργοποιημένη.

Θα χρειαστεί να εκτελέσετε αυτήν την εντολή μόνο για πρώτη φορά. Στη συνέχεια, επανεκκινήστε τα Windows για να τεθεί σε ισχύ η αλλαγή.

Προβολή ανοιχτών αρχείων και των αντίστοιχων ονομάτων διεργασιών

Μετά την επανεκκίνηση των Windows, από ένα Γραμμή εντολών διαχειριστή παράθυρο, πληκτρολογήστε:

ανοιχτά αρχεία

Αυτό εμφανίζει το αναγνωριστικό αρχείου/χειρισμού, το όνομα διεργασίας και τη λίστα των αρχείων που ανοίγονται τοπικά ή απομακρυσμένα μέσω τοπικών σημείων κοινής χρήσης, σε μορφή πίνακα.

Για να προβάλετε την έξοδο σε μορφή List ή CSV, χρησιμοποιήστε την παράμετρο /query.

openfiles /query /FO LIST. openfiles /query /FO CSV

Για να αντιγράψετε την έξοδο στο πρόχειρο, διοχετεύστε την έξοδο στο Clip.exe όπως παρακάτω. Στη συνέχεια, επικολλήστε την έξοδο στο Σημειωματάριο ή σε οποιοδήποτε άλλο πρόγραμμα επεξεργασίας της επιλογής σας.

openfiles | κλιπ
Βρείτε ποια διαδικασία έχει κλειδώσει ένα αρχείο
openfiles /query /FO LIST |clip. openfiles /query /FO CSV |clip
Βρείτε ποια διαδικασία έχει κλειδώσει ένα αρχείο

Για περισσότερες πληροφορίες σχετικά με την αντιγραφή της εξόδου της γραμμής εντολών στο πρόχειρο ή την αποθήκευση της εξόδου σε ένα αρχείο, ανατρέξτε στο άρθρο Πώς να αντιγράψετε το κείμενο εξόδου της γραμμής εντολών στο πρόχειρο ή να το αποθηκεύσετε στο αρχείο;

Για να βρείτε εάν ένα συγκεκριμένο αρχείο χρησιμοποιείται από ένα πρόγραμμα (και για να μάθετε ποιο πρόγραμμα), μπορείτε να χρησιμοποιήσετε την ακόλουθη γραμμή εντολών.

openfiles | findstr /i 

Παράδειγμα:

openfiles | findstr /i Άιφελ

Η παραπάνω εντολή παραθέτει όλα τα ανοιχτά αρχεία που περιέχουν τη λέξη "eiffel" στο όνομα του αρχείου. Σε αυτό το παράδειγμα, το Word 2016 έχει αυτήν τη στιγμή το κλείδωμα του αρχείου "The Eiffel Tower.docx" (ID 4576).

Βρείτε ποια διαδικασία έχει κλειδώσει ένα αρχείο

Και ο διάλογος "Αρχείο σε χρήση" μου λέει το ίδιο πράγμα.

Βρείτε ποια διαδικασία έχει κλειδώσει ένα αρχείο

Αποσυνδέστε τα αρχεία που ανοίγουν απομακρυσμένα από τον κοινόχρηστο φάκελο.

Για να αποσυνδέσετε αρχεία που έχουν ανοίξει από τον κοινόχρηστο φάκελο, ώστε να μπορείτε να διαγράψετε, να μετονομάσετε το αρχείο ή να τροποποιήσετε τα περιεχόμενα, χρησιμοποιήστε το /disconnect παράμετρο για να κόψετε τις συνδέσεις σε αυτό το αρχείο. Εδώ είναι οι επιλογές της γραμμής εντολών.

OPENFILES /Αποσύνδεση [/S system [/U username [/P [password]]]] {[/ID id] [/A accessed by] [/O openmode]} [/OP openfile] Περιγραφή: Επιτρέπει σε έναν διαχειριστή να αποσυνδέει αρχεία και φακέλους που έχουν ανοιχτεί εξ αποστάσεως μέσω ενός κοινόχρηστου ντοσιέ. Λίστα παραμέτρων: /S system Καθορίζει το απομακρυσμένο σύστημα στο οποίο θα συνδεθείτε. /U [domain\]user Καθορίζει το περιβάλλον χρήστη κάτω από το οποίο πρέπει να εκτελεστεί η εντολή. /P [password] Καθορίζει τον κωδικό πρόσβασης για το δεδομένο περιβάλλον χρήστη. /ID id Καθορίζει την αποσύνδεση των ανοιχτών αρχείων με το αναγνωριστικό αρχείου. Μπορεί να χρησιμοποιηθεί ο χαρακτήρας μπαλαντέρ "*". /A accessedby Καθορίζει την αποσύνδεση όλων των ανοιχτών αρχείων με την τιμή "accessedby". Μπορεί να χρησιμοποιηθεί ο χαρακτήρας μπαλαντέρ "*". /O openmode Καθορίζει την αποσύνδεση όλων των ανοιχτών αρχείων με την τιμή "openmode". Οι έγκυρες τιμές είναι Read, Write ή Read/Write. Μπορεί να χρησιμοποιηθεί ο χαρακτήρας μπαλαντέρ "*". /OP openfile Καθορίζει την αποσύνδεση όλων των συνδέσεων ανοιχτού αρχείου που δημιουργούνται από ένα συγκεκριμένο όνομα "ανοικτού αρχείου". Μπορεί να χρησιμοποιηθεί ο χαρακτήρας μπαλαντέρ "*". /? Εμφανίζει αυτό το μήνυμα βοήθειας. Παραδείγματα: OPENFILES /Αποσύνδεση /? OPENFILES /Αποσύνδεση /ID 1 OPENFILES /Αποσύνδεση /Ένα όνομα χρήστη OPENFILES /Αποσύνδεση /O Ανάγνωση/Εγγραφή OPENFILES /Αποσύνδεση /OP "c:\My Documents\somedoc.doc" /ID 234 OPENFILES /Αποσύνδεση /S system /U username /ID 5 OPENFILES /Disconnect /S system /U username /P password /ID *

Το Openfiles.exe κάνει τέλεια τη δουλειά της καταχώρισης όλων των ανοιχτών αρχείων μαζί με τα ονόματα των διεργασιών, αλλά δεν μπορεί να σκοτώσει διεργασίες αναγκαστικά. Ωστόσο, αυτό το εξαιρετικό (αλλά παραβλέπεται) ενσωματωμένο εργαλείο κονσόλας μπορεί να σας φανεί χρήσιμο όταν θέλετε να βρείτε γρήγορα ένα όνομα διαδικασίας που χρησιμοποιεί ένα αρχείο ή για να αποσυνδέσετε ένα αρχείο στο οποίο έχει πρόσβαση μέσω ενός κοινόχρηστου φακέλου ένας χρήστης δικτύου — χωρίς να εξαρτάται από τρίτο μέρος λύση.

5. OpenedFilesView

OpenedFilesView από τη Nirsoft εμφανίζει τη λίστα με όλα τα ανοιχτά αρχεία στο σύστημά σας. Για κάθε ανοιχτό αρχείο, εμφανίζονται πρόσθετες πληροφορίες: τιμή χειρισμού, πρόσβαση ανάγνωσης/εγγραφής/διαγραφής, θέση αρχείου, διαδικασία που άνοιξε το αρχείο και άλλα… Προαιρετικά, μπορείτε επίσης να κλείσετε ένα ή περισσότερα ανοιχτά αρχεία ή να κλείσετε τη διαδικασία που άνοιξε αυτά αρχεία.

Βρείτε ποια διαδικασία έχει κλειδώσει ένα αρχείο

Μπορείτε να κλείσετε διεργασίες επιλεγμένων αρχείων ή να κλείσετε επιλεγμένες λαβές αρχείων. Ο αριθμός λαβής αντιπροσωπεύεται σε δεκαεξαδικές τιμές, ενώ το εργαλείο κονσόλας openfiles.exe τον εμφανίζει στην κανονική μορφή. Αυτό το εργαλείο σάς επιτρέπει επίσης να προσθέσετε μια επιλογή μενού περιβάλλοντος για να βρείτε γρήγορα τη διαδικασία που χρησιμοποιεί αυτήν τη στιγμή ένα αρχείο, μέσω του μενού με το δεξί κλικ. Η επιλογή του μενού περιβάλλοντος / η υποστήριξη γραμμής εντολών, θεωρώ ότι είναι μια από τις πιο χρήσιμες δυνατότητες που προσφέρει το OpenedFilesView.


Ένα μικρό αίτημα: Αν σας άρεσε αυτή η ανάρτηση, κοινοποιήστε την;

Μια "μικροσκοπική" κοινοποίηση από εσάς θα βοηθούσε σοβαρά πολύ στην ανάπτυξη αυτού του ιστολογίου. Μερικές υπέροχες προτάσεις:
  • Καρφιτσώστε το!
  • Μοιραστείτε το στο αγαπημένο σας blog + Facebook, Reddit
  • Tweet το!
Σας ευχαριστώ πολύ λοιπόν για την υποστήριξή σας, αναγνώστη μου. Δεν θα πάρει περισσότερα από 10 δευτερόλεπτα από τον χρόνο σας. Τα κουμπιά κοινής χρήσης βρίσκονται ακριβώς από κάτω. :)

Ezoicαναφέρετε αυτήν τη διαφήμιση