כאשר אתה מנסה למחוק קובץ או תיקיה שנמצאים בשימוש על ידי תהליך, תיבת הדו-שיח 'קובץ בשימוש' מופיעה המציגה את שם התוכנית שנעלה את הקובץ.
עם זאת, ישנם מקרים שבהם תיבת הדו-שיח "קובץ בשימוש" לא מציגה את שם התהליך שיש לו נעילה על הקובץ שאתה מנסה למחוק. במקרים מסוימים, תיבת הדו-שיח תציג "לא ניתן להשלים את הפעולה מכיוון שהקובץ פתוח ב תהליך אחר“.
עבור חקירת תהליכים וקבצים נעולים, סייר התהליכים של Windows Sysinternals הוא כנראה האפשרות הראשונה שעולה בראש רוב המשתמשים. עם זאת, ישנם שניים פתרונות מובנים כדי להציג את רשימת הקבצים הפתוחים הנוכחית יחד עם שמות תהליכים מתאימים.
מצא איזה תהליך נעל קובץ באמצעות:
- צג משאבים (resmon.exe)
- סייר תהליכים מבית Microsoft Sysinternals
-
ידית מבית Microsoft Sysinternals
- מצא את נקודת האחיזה לקובץ באמצעות תפריט הקליק הימני
-
כלי מסוף מובנה של Openfiles.exe
- אפשר מעקב אחר נקודות אחיזה של קבצים מקומיים
- הצג קבצים פתוחים ושמות התהליך המתאימים
- נתק קבצים שנפתחו מתיקיות משותפות
- OpenedFilesView מ-Nirsoft.net (צד שלישי)
1. מוניטור משאבים
Resource Monitor (resmon.exe) הוא כלי מובנה הכולל תכונות שימושיות רבות. עם Resource Monitor, אתה יכול
לעקוב אחר השימוש הנוכחי ברשת ובאינטרנט, הצג את נקודות האחיזה המשויכות עבור קבצים נעולים, כמו גם לנהל תהליכים בדיוק כפי שאתה משתמש במנהל המשימות.כדי למצוא את שם התהליך שבו קובץ נעול, לחץ על לשונית CPU, הקלד את שם הקובץ או חלק ממנו בתיבת הטקסט Associated Handles.
סקרנו את משאבים מוניטור מוקדם יותר. בדוק את המאמרים האלה:
- כיצד להשתמש ב-Resource Monitor כדי למצוא איזה תהליך נעל קובץ?
- איזו תוכנית משתמשת בכל רוחב הפס של האינטרנט שלך? השתמש ב-Resource Monitor כדי למצוא אותו
2. סייר תהליכים
סייר תהליכים לא צריך הקדמה. ב-Process Explorer, כל מה שאתה צריך לעשות הוא להשתמש בתכונת Find ולהקליד את שם הקובץ. זה מראה את התהליך שניגשת לקובץ.
מתצוגת החלונית התחתונה, תוכל לסגור את ידית הקובץ במידת הצורך.
עליך להפעיל את Process Explorer כמנהל מערכת כדי לנהל תהליכים הפועלים ברמות גבוהות. כדי להעלות את סייר התהליכים, לחץ על תפריט הקובץ ← הצג פרטים עבור כל התהליכים.
עיין במאמרים אלה הקשורים ל-Process Explorer:
- כיצד למחוק קובץ או תיקיה עקשניים שלא ניתן למחוק ב-Windows?
- מצא איזו תוכנית משתמשת במצלמת האינטרנט שלך כרגע
- כיצד למצוא איזו תוכנית גרמה להודעת שגיאה לא ידועה?
- מה המשמעות של נכשל לספור אובייקטים במיכל?
3. טיפול מ-Windows Sysinternals
ידית הוא כלי שירות מבית Microsoft Sysinternals המציג מידע על נקודות עזר פתוחות עבור כל תהליך במערכת. אתה יכול להשתמש בו כדי לראות את התוכניות שיש להן קובץ פתוח, או כדי לראות את סוגי האובייקטים והשמות של כל נקודות האחיזה של תוכנית. Handle היא כמו גרסת שורת פקודה של סייר תהליכים.
הערה: לידית v4.21 יש א באג קטן כאשר הוא תמיד מדווח "לא נמצאו נקודות אחיזה תואמות" אם אות הכונן היא באותיות רישיות. מקווה שמיקרוסופט תתקן את זה בעדכון הבא.
מאת שורת הפקודה של admin חלון, השתמש בתחביר שורת הפקודה כדי למצוא את התהליך שבו הקובץ פתוח:
handle.exe -a -u filename_with_path
אם שם הקובץ מכיל רווחים, הקף אותו במירכאות כפולות.
דוגמא:
handle.exe -a -u "c:\users\ramesh\desktop\Mandate-form.pdf"
(אזכור שם הקובץ ללא הנתיב לא בהכרח יעבוד בכל מצב. מומלץ לכלול את הנתיב המלא תמיד.)
הפלט מציג את שם התהליך, מזהה התהליך, שם המשתמש, שם הקובץ הנעול (היעד) עם נתיב.
טיפול Sysinternals: ארגומנטים בשורת הפקודה
שימוש: ידית [[-a [-l]] [-u] | [-c [-y]] | [-s]] [-p |] [שם] [-nobanner]
-א | זרוק את כל המידע על הידית. |
-ל | פשוט הצג את נקודות האחיזה של הקטע מגובות קובץ הדף. |
-ג | סוגר את הידית שצוינה (מתפרש כמספר הקסדצימלי). עליך לציין את התהליך לפי ה-PID שלו. אזהרה: סגירת ידיות עלולה לגרום לאי יציבות של יישום או מערכת. |
-י | אל תבקש אישור טיפול קרוב. |
-ס | ספירת הדפסה של כל סוג של ידית פתוחה. |
-u | הצג את שם המשתמש הבעלים בעת חיפוש נקודות אחיזה. |
-עמ' | ידיות dump השייכות לתהליך (שם חלקי מתקבל). |
שֵׁם | חפש ידיות לאובייקטים איתן |
-נובאנר | אל תציג את באנר ההפעלה ואת הודעת זכויות היוצרים. |
שום ארגומנט לא יזרוק את כל הפניות לקבצים.
הוסף Sysinternals Handle לתפריט לחיצה ימנית
אתה יכול להוסיף את Sysinternals Handle לתפריט לחיצה ימנית עבור קבצים כדי למצוא במהירות את התוכנית שנעלה את הקובץ. כדי להוסיף אותו לתפריט ההקשר, בצע את השלבים הבאים:
- הורד ידית מאתר Microsoft Sysinternals.
- העתק את הקבצים handle.exe & handle64.exe לתיקיה - למשל,
d:\tools
- העתק את שורות הקוד הבאות לפנקס הרשימות ושמור את הקובץ בשם
find_handle.vbs
למקום קבוע.'מריץ את כלי השירות Sysinternals Handle.exe עם ארגומנט שם הקובץ. '© Ramesh Srinivasan -- https://winhelponline.com/blog. 'תאריך יצירה: 29 במרץ 2008. 'תאריך עדכון: 11 ביוני 2019. 'עבור כל הגירסאות של Windows, כולל Windows 10 Option Explicit. עמום objShell, WshShell, objFSO, sBaseKey, sFilename. הגדר objShell = CreateObject("Shell. יישום") הגדר WshShell = CreateObject("WScript. צדף") הגדר 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 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 מציג את רשימת הקבצים הפתוחים כעת מתיקיות מקומיות או משותפות, יחד עם מזהה הידית ושם ההפעלה של תהליך. כלי זה גם מאפשר לך לנתק קובץ אחד או יותר שנפתחים מרחוק מתיקיה משותפת.
הפעל את הדגל הגלובלי "שמור על רשימת אובייקטים" בפעם הראשונה
ראשית, כדי לאפשר מעקב אחר נקודות אחיזה של קבצים מקומיים, עליך להפעיל את דגל 'שמור על רשימת אובייקטים' על ידי הפעלת הפקודה הבאה משורת הפקודה של אדמין.
openfiles /local ב-
תראה את ההודעה הבאה:
מידע: הדגל הגלובלי של המערכת 'ניהול רשימת אובייקטים' מופעל כעת.
תצטרך להפעיל פקודה זו בפעם הראשונה בלבד. לאחר מכן הפעל מחדש את Windows כדי שהשינוי ייכנס לתוקף.
הצג קבצים פתוחים ושמות התהליך המתאימים
לאחר הפעלה מחדש של Windows, מ-an שורת הפקודה של admin חלון, הקלד:
קבצים פתוחים
זה מפרט את מזהה הקובץ/הטיפול, שם התהליך ואת רשימת הקבצים שנפתחו באופן מקומי או שנפתחו מרחוק באמצעות נקודות שיתוף מקומיות, בפורמט טבלה.
כדי להציג את הפלט בפורמט List או CSV, השתמש בפרמטר /query.
openfiles /query /FO LIST. openfiles /query /FO CSV
כדי להעתיק את הפלט ללוח, העבר את הפלט אל Clip.exe כמו להלן. לאחר מכן הדבק את הפלט בפנקס הרשימות או בכל עורך אחר לבחירתך.
openfiles |קליפ
openfiles /query /FO LIST |קליפ. openfiles /query /FO CSV |clip
למידע נוסף על העתקת פלט שורת הפקודה ללוח או שמירת הפלט לקובץ, עיין במאמר כיצד להעתיק את טקסט פלט שורת הפקודה ללוח או לשמור לקובץ?
כדי למצוא אם קובץ מסוים נמצא בשימוש על ידי תוכנית (ולדעת איזו תוכנה), אתה יכול להשתמש בשורת הפקודה הבאה.
openfiles | findstr /i
דוגמא:
openfiles | findstr /i eiffel
הפקודה לעיל מפרטת את כל הקבצים הפתוחים המכילים את המילה "eiffel" בשם הקובץ. בדוגמה זו, Word 2016 כולל כעת את המנעול על הקובץ "The Eiffel Tower.docx" (מזהה 4576).
ודיאלוג "קובץ בשימוש" אומר לי את אותו הדבר.
נתק קבצים שנפתחו מרחוק מהתיקייה המשותפת.
כדי לנתק קבצים שנפתחו מהתיקייה המשותפת כדי שתוכל למחוק, לשנות את שם הקובץ או לשנות את התוכן, השתמש ב- /disconnect
פרמטר כדי לחתוך חיבורים לקובץ זה. להלן אפשרויות שורת הפקודה.
OPENFILES /נתק [/S system [/U שם משתמש [/P [סיסמה]]]] {[/ID id] [/A נגיש על ידי] [/O openmode]} [/OP openfile] תיאור: מאפשר למנהל מערכת לנתק קבצים ותיקיות שנפתחו מרחוק באמצעות קובץ משותף תיקייה. רשימת פרמטרים: /S system מציין את המערכת המרוחקת שאליה יש להתחבר. /U [domain\]user מציין את ההקשר של המשתמש שתחתיו הפקודה צריכה להפעיל. /P [סיסמה] מציין את הסיסמה עבור הקשר המשתמש הנתון. /ID id מציין לנתק קבצים פתוחים לפי מזהה קובץ. ניתן להשתמש בתו הכללי "*". /A accessedby מציין לנתק את כל הקבצים הפתוחים לפי ערך "accessedby". ניתן להשתמש בתו הכללי "*". /O openmode מציין לנתק את כל הקבצים הפתוחים לפי ערך "openmode". ערכים חוקיים הם קריאה, כתיבה או קריאה/כתיבה. ניתן להשתמש בתו הכללי "*". /OP openfile מציין לנתק את כל חיבורי הקבצים הפתוחים שנוצרו על ידי שם ספציפי של "קובץ פתוח". ניתן להשתמש בתו הכללי "*". /? מציג הודעת עזרה זו. דוגמאות: OPENFILES /נתק /? OPENFILES /נתק /מזהה 1 OPENFILES /נתק /שם משתמש OPENFILES /נתק /O קריאה/כתיבה OPENFILES /נתק /OP "c:\My Documents\somedoc.doc" /ID 234 OPENFILES /נתק /S system /U שם משתמש /ID 5 OPENFILES /נתק /S system /U שם משתמש /P סיסמה /ID *
Openfiles.exe עושה את העבודה בצורה מושלמת לרשום את כל הקבצים הפתוחים יחד עם שמות התהליך, אבל הוא לא יכול להרוג תהליכים בכוח. עם זאת, כלי המסוף המובנה המצוין (אך התעלמו ממנו) יכול להיות שימושי כאשר אתה רוצה למצוא במהירות שם תהליך שמשתמש קובץ, או לנתק קובץ שאליו ניגש משתמש רשת דרך תיקיה משותפת - ללא תלות בצד שלישי פִּתָרוֹן.
5. פתח את FilesView
פתח את FilesView מ-Nirsoft מציג את רשימת כל הקבצים שנפתחו במערכת שלך. עבור כל קובץ שנפתח, מוצג מידע נוסף: ערך טיפול, גישת קריאה/כתיבה/מחיקה, מיקום הקובץ, התהליך שפתחו את הקובץ, ועוד... לחלופין, ניתן גם לסגור קובץ אחד או יותר שנפתחו, או לסגור את התהליך שפתח את אלה קבצים.
ניתן לסגור תהליכים של קבצים נבחרים או לסגור נקודות אחיזה של קבצים נבחרים. מספר הידית מיוצג בערכי hex ואילו כלי המסוף openfiles.exe מציג אותו בפורמט הרגיל. כלי זה גם מאפשר לך להוסיף אפשרות תפריט הקשר כדי למצוא במהירות את התהליך שמשתמש כעת בקובץ, דרך תפריט הקליק הימני. אפשרות תפריט ההקשר / תמיכה בשורת הפקודה, לדעתי, היא אחת התכונות השימושיות ביותר שמציע OpenedFilesView.
בקשה קטנה אחת: אם אהבתם את הפוסט הזה, בבקשה שתפו אותו?
נתח "קטנטן" אחד ממך יעזור ברצינות לצמיחת הבלוג הזה. כמה הצעות נהדרות:- להצמיד אותו!
- שתף אותו בבלוג האהוב עליך + פייסבוק, Reddit
- צייץ את זה!