כיצד לזהות את התהליך שנעול קובץ ב- Windows

How Identify Process That Has Locked File Windows

קבצים פתוחים

כאשר אתה מנסה למחוק קובץ או תיקיה המשמשים תהליך, ה- שיח קובץ בשימוש מופיע מראה שם התוכנית שנעילה את הקובץ.



עם זאת, ישנם מקרים בהם תיבת הדו-שיח 'קובץ בשימוש' אינה מציגה את שם התהליך שיש בו נעילה לקובץ אותו אתה מנסה למחוק. במקרים מסוימים, תיבת הדו-שיח תראה 'לא ניתן להשלים את הפעולה מכיוון שהקובץ פתוח בתוך תהליך אחר '.



מצא איזה תהליך נעול קובץ



לצורך חקירת תהליכים וקבצים נעולים, Windows Sysinternals Explorer Explorer הוא ככל הנראה האפשרות הראשונה שעולה בראש אצל רוב המשתמשים. עם זאת, ישנם שניים פתרונות מובנים כדי להציג את רשימת הקבצים הפתוחים הנוכחיים יחד עם שמות התהליך המתאימים.

מצא איזה תהליך נעל את הקובץ באמצעות:

  1. צג משאבים (resmon.exe)
  2. סייר תהליכים מבית Microsoft Sysinternals
  3. ידית מ- Microsoft Sysinternals
  4. כלי הקונסולה המובנה של Openfiles.exe
  5. OpenedFilesView מ- Nirsoft.net (צד שלישי)

1. צג משאבים

Resource Monitor (resmon.exe) הוא כלי מובנה בעל תכונות שימושיות רבות. בעזרת Resource Monitor תוכלו לעשות זאת לעקוב אחר השימוש הנוכחי ברשת ובאינטרנט , צפה בידיות משויכות ל קבצים נעולים וכן לנהל תהליכים בדיוק כפי שהיית משתמש במנהל המשימות.



כדי למצוא את שם התהליך שקובץ נעול עליו, לחץ על הכרטיסיה CPU, הקלד את שם הקובץ או חלק ממנו בתיבת הטקסט Associated Handles.

מצא איזה תהליך נעול קובץ

סקרנו את צג המשאבים קודם לכן. בדוק את המאמרים הבאים:

2. סייר תהליכים

סייר תהליכים לא צריך שום הקדמה. ב- Explorer Explorer, כל שעליך לעשות הוא להשתמש בתכונת Find ולהקליד את שם הקובץ. זה מראה את התהליך שמגישה לקובץ.

מצא איזה תהליך נעול קובץ

מתצוגת החלונית התחתונה תוכלו לסגור את ידית הקובץ במידת הצורך.

עליך להפעיל את סייר התהליך כמנהל כדי לנהל תהליכים המריצים. כדי להעלות את סייר התהליך, לחץ על תפריט קובץ → הצגת פרטי כל התהליכים .

עיין במאמרים הבאים בנושא סייר התהליך:

3. טיפול מ- Windows Sysinternals

ידית הוא כלי עזר של Microsoft Sysinternals המציג מידע על ידיות פתוחות לכל תהליך במערכת. אתה יכול להשתמש בו כדי לראות את התוכניות שפתוח קובץ פתוח, או כדי לראות את סוגי האובייקטים והשמות של כל הידיות של התוכנית. ידית היא כמו גרסת שורת פקודה של סייר תהליכים .

הערה: לידית v4.21 יש באג קטן שם הוא מדווח תמיד 'לא נמצאו ידיות תואמות' אם אות הכונן באותיות רישיות. מקווה שמיקרוסופט תתקן את זה בעדכון הבא.

מ- שורת הפקודה של מנהל המערכת בחלון, השתמש בתחביר של שורת הפקודה כדי למצוא את התהליך שבו הקובץ פתוח:

handle.exe -a -u filename_with_path

אם שם הקובץ מכיל רווחים, צרף אותו במרכאות כפולות.

דוגמא:

handle.exe -a -u 'c:  users  ramesh  desktop  Mandate-form.pdf'

מצא איזה תהליך נעול - קובץ sysinternals

(אזכור שם הקובץ ללא הנתיב לא בהכרח יכול לעבוד בכל מצב. מומלץ לכלול את הנתיב המלא תמיד.)

הפלט מציג את שם התהליך, מזהה התהליך, שם המשתמש, שם הקובץ הנעול (היעד) עם הנתיב.

ידית Sysinternals: טיעונים בשורת הפקודה

שימוש: ידית [[-a [-l]] [-u] | [-c [-y]] | [-s]] [-p |] [name] [-nobanner]
זרוק את כל ידיות המידע.
-l פשוט הציגו ידיות קטע מגובות דף.
סוגר את הידית שצוינה (מתפרש כמספר הקסדצימלי).
עליך לציין את התהליך לפי ה- PID שלו. אזהרה: סגירת ידיות עלולה לגרום לחוסר יציבות ביישום או במערכת.
אל תבקש אישור ידית קרוב.
ספירת הדפסים של כל סוג ידית פתוחה.
הראה את שם המשתמש שבבעלותך בחיפוש אחר ידיות.
-p ידיות זבל השייכות לתהליך (שם חלקי מתקבל).
שֵׁם חפש ידיות לאובייקטים עם (מקוטע מקוטע).
-לא-באנר אל תציג את באנר ההפעלה והודעת זכויות היוצרים.

שום ויכוחים לא יזרקו את כל הפניות לקבצים.

הוסף ידית Sysinternals לתפריט לחיצה ימנית

ניתן להוסיף Sysinternals Handle לתפריט לחיצה ימנית עבור קבצים כדי למצוא במהירות את התוכנית שנעילה את הקובץ. כדי להוסיף אותו לתפריט ההקשר, בצע את הצעדים הבאים:

  1. הורד ידית מאתר Microsoft Sysinternals.
  2. העתק את הקבצים handle.exe & handle64.exe לתיקייה - למשל d: כלים
  3. העתק את שורות הקוד הבאות לפנקס הרשימות ושמור את הקובץ בשם find_handle.vbs למיקום קבוע.
    'מפעיל את כלי השירות Sysinternals Handle.exe עם טיעון שם הקובץ. '© Ramesh Srinivasan - https://winhelponline.com/blog' תאריך יצירה: 29 במרץ, 2008 'תאריך עדכון: 11 ביוני, 2019' לכל הגירסאות של Windows, כולל Windows 10 אפשרות מפורשת Dim objShell, WshShell, objFSO, sBaseKey, sFilename Set objShell = CreateObject ('Shell.Application') הגדר WshShell = CreateObject ('WScript.Shell') הגדר objFSO = CreateObject ('Scripting.FileSystemObject') אם WScript.Arguments.Count = 0 ואז sBaseKey = 'HKCU  תוכנה  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)) = נכון אז sFilename = lcase (WScript.Arguments (0)) objShell.ShellExecute 'cmd.exe', '/kd:	oolshandle.exe -a -u' & _ '' '& sFilename &' '' ',' ',' runas ', 1 End If End If

    הערה: הנתיב Sysinternals Handle.exe מקודד כ- d: tools handle.exe בתסריט הנ'ל. אם התוכנית ממוקמת בנתיב אחר, שנה את הנתיב בסקריפט בהתאם. עבור Windows של 64 סיביות, אתה יכול להשתמש באחד מהם 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 ושם ההפעלה של התהליך. כלי זה גם מאפשר לנתק קובץ אחד או יותר שנפתחים מרחוק מתיקיה משותפת.

הפעל לראשונה את הדגל הגלובלי 'שמור על רשימת אובייקטים'

ראשית, כדי לאפשר מעקב אחר ידיות קבצים מקומיות, עליך להפעיל את הדגל 'שמור על רשימת אובייקטים' על ידי הפעלת הפקודה הבאה מתוך שורת הפקודה של admin.

קבצים פתוחים / מקומי מופעל

תראה את ההודעה הבאה:

מידע: הדגל הגלובלי של המערכת 'שמור על רשימת אובייקטים' מופעל כעת.

יהיה עליך להפעיל פקודה זו בפעם הראשונה בלבד. ואז הפעל מחדש את Windows כדי שהשינוי ייכנס לתוקף.

הצג קבצים פתוחים ושמות התהליכים המתאימים

לאחר הפעלה מחדש של Windows, מ- שורת הפקודה של מנהל המערכת חלון, סוג:

קבצים פתוחים

זה מפרט את מזהה הקובץ / ידית, שם התהליך ואת רשימת הקבצים שנפתחו באופן מקומי או נפתחו מרחוק באמצעות נקודות שיתוף מקומיות, בפורמט טבלה.

כדי להציג את הפלט בתבניות רשימה או CSV, השתמש בפרמטר / query.

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

כדי להעתיק את הפלט ללוח, צינור את הפלט אל Clip.exe כמפורט להלן. ואז הדבק את הפלט בפנקס הרשימות או בכל עורך אחר שתבחר.

קבצים פתוחים | קליפ

מצא איזה תהליך נעול קובץ

openfiles / query / FO LIST | קליפ openfiles / query / FO CSV | clip

מצא איזה תהליך נעול קובץ

למידע נוסף על העתקת פלט שורת הפקודה ללוח או שמירת הפלט לקובץ, עיין במאמר כיצד להעתיק טקסט פלט שורת פקודה ללוח או לשמור לקובץ?

כדי לגלות אם קובץ מסוים נמצא בשימוש על ידי תוכנית (וכדי לדעת איזו תוכנית), תוכל להשתמש בשורת הפקודה הבאה.

קבצים פתוחים | findstr / i

דוגמא:

קבצים פתוחים | findstr / i אייפל

הפקודה שלעיל מפרטת את כל הקבצים הפתוחים המכילים את המילה 'אייפל' בשם הקובץ. בדוגמה זו, ל- Word 2016 יש כעת את הנעילה מעל הקובץ 'מגדל אייפל.docx' (ID 4576).

מצא איזה תהליך נעול קובץ

ודיאלוג 'קובץ בשימוש' אומר לי את אותו הדבר.

מצא איזה תהליך נעול קובץ

נתק קבצים שנפתחו מרחוק מהתיקיה המשותפת.

כדי לנתק קבצים שנפתחו מהתיקיה המשותפת כדי שתוכל למחוק, לשנות את שם הקובץ או לשנות את התוכן, השתמש ב /לְנַתֵק פרמטר לחיתוך חיבורים לקובץ זה. להלן אפשרויות שורת הפקודה.

OPENFILES / ניתוק [/ S מערכת [/ U שם משתמש [/ P [סיסמא]]]] {[/ ID id] [/ A accessedby] [/ O openmode]} [/ OP open file] תיאור: מאפשר למנהל לנתק קבצים ותיקיות שנפתחו מרחוק באמצעות תיקיה משותפת. רשימת פרמטרים: / S מערכת מציין את המערכת המרוחקת שאליה יש להתחבר. / U [דומיין ] משתמש מציין את הקשר המשתמש לפיו הפקודה צריכה להיעשות. / P [סיסמה] מציין את הסיסמה להקשר המשתמש הנתון. / ID מזהה מציין לנתק קבצים פתוחים לפי מזהה קובץ. ניתן להשתמש בתו הכללי '*'. / A accessedby מציין לנתק את כל הקבצים הפתוחים לפי ערך 'accessedby'. ניתן להשתמש בתו הכללי '*'. / Openmode מציין לנתק את כל הקבצים הפתוחים לפי ערך 'openmode'. ערכים תקפים הם קריאה, כתיבה או קריאה / כתיבה. ניתן להשתמש בתו הכללי '*'. / OP פתוח קובץ מציין לנתק את כל חיבורי הקבצים הפתוחים שנוצרו בשם 'קובץ פתוח' ספציפי. ניתן להשתמש בתו הכללי '*'. /? מציג הודעת עזרה זו. דוגמאות: OPENFILES / ניתוק /? OPENFILES / ניתוק / מזהה 1 OPENFILES / ניתוק / שם משתמש OPENFILES / ניתוק / O קריאה / כתיבה OPENFILES / ניתוק / OP 'c:  המסמכים שלי  somedoc.doc' / ID 234 OPENFILES / ניתוק / מערכת S / U שם משתמש / מזהה 5 OPENFILES / ניתוק / מערכת S / שם משתמש U / סיסמת P / ID *

Openfiles.exe עושה באופן מושלם את רשימת כל הקבצים הפתוחים יחד עם שמות התהליכים, אך היא אינה יכולה להרוג בתהליכים בכוח. עם זאת, כלי הקונסולה המובנה המצויין (אך המתעלם ממנו) יכול להיות שימושי כאשר ברצונך למצוא במהירות שם תהליך המשתמש בקובץ, או לנתק קובץ אליו משתמש הגישה מתיקייה משותפת - ללא תלות על פיתרון צד שלישי.

5. OpenedFilesView

OpenedFilesView מ- Nirsoft מציגה את רשימת כל הקבצים שנפתחו במערכת שלך. עבור כל קובץ שנפתח, מוצג מידע נוסף: ערך טיפול, גישה / קריאה / כתיבה / מחיקה, מיקום הקובץ, התהליך שפתח את הקובץ ועוד ... לחלופין, תוכל גם לסגור קובץ אחד או יותר שנפתח, או לסגור את התהליך ש פתח קבצים אלה.

מצא איזה תהליך נעול קובץ

באפשרותך לסגור תהליכים של קבצים נבחרים או לסגור ידיות קבצים שנבחרו. מספר הידית מיוצג בערכי hex ואילו כלי הקונסולה openfiles.exe מראה אותו בפורמט הרגיל. כלי זה גם מאפשר לך להוסיף אפשרות בתפריט ההקשר כדי למצוא במהירות את התהליך שמשתמש כעת בקובץ, באמצעות תפריט העכבר הימני. אפשרות של תפריט ההקשר / תמיכה בשורת פקודה, אני חושב, היא אחת התכונות השימושיות ביותר שמציעה OpenedFilesView.


בקשה קטנה אחת: אם אהבתם את הפוסט הזה, אנא שתפו את זה?

נתח 'זעיר' אחד ממך יעזור מאוד ברציפות בצמיחת הבלוג הזה. כמה הצעות נהדרות:
  • להצמיד אותו!
  • שתף אותו לבלוג האהוב עליך + פייסבוק, Reddit
  • צייץ את זה!
אז תודה רבה על תמיכתך, הקורא שלי. זה לא ייקח יותר מ -10 שניות מזמנך. כפתורי השיתוף נמצאים ממש למטה. :)