Temukan Proses Yang Mengunci File Tanpa Alat Pihak Ketiga

2019-05-05 13:01:39
Utama·Microsoft·Temukan Proses Yang Mengunci File Tanpa Alat Pihak Ketiga

Ketika Anda mencoba untuk menghapus file atau folder yang sedang digunakan oleh suatu proses, dialog File yang Digunakan muncul yang menunjukkan nama program yang telah mengunci file.

Namun, ada beberapa kasus di mana dialog "Penggunaan File" tidak menunjukkan nama proses yang memiliki kunci pada file yang Anda coba hapus. Dalam beberapa kasus, dialog akan menunjukkan "tindakan tidak dapat diselesaikan karena file terbuka di proses lain ".

Untuk menyelidiki proses dan file yang terkunci, Windows Sysinternals Process Explorer mungkin merupakan opsi pertama yang muncul di benak sebagian besar pengguna. Namun, ada dua solusi bawaan untuk menampilkan daftar file terbuka saat ini bersama dengan nama proses yang sesuai.

Temukan proses mana yang mengunci file menggunakan:

  1. Monitor Sumber Daya (resmon.exe)
  2. Process Explorer dari Microsoft Sysinternals
  3. Tangani dari Microsoft Sysinternals
    • Temukan pegangan file melalui menu klik kanan
  4. Alat konsol bawaan Openfiles.exe
    • Aktifkan pelacakan menangani file lokal
    • Lihat file yang terbuka dan nama proses yang sesuai
    • Putuskan sambungan file yang dibuka dari folder bersama
  5. OpenedFilesView dari Nirsoft.net (pihak ketiga)

1. Monitor Sumber Daya

Resource Monitor (resmon.exe) adalah alat bawaan yang memiliki banyak fitur berguna. Dengan Resource Monitor, Anda dapat melacak penggunaan jaringan dan internet saat ini, melihat pegangan terkait untuk file yang terkunci, serta mengelola proses seperti halnya Anda menggunakan Task Manager.

Untuk menemukan nama proses yang file terkunci, klik tab CPU, ketik nama file atau bagian dari itu di kotak teks Associated Handles.

Kami telah membahas Resource Monitor sebelumnya. Lihat artikel ini:

  • Bagaimana Cara Menggunakan Resource Monitor untuk Menemukan Proses Yang Mengunci File?
  • Program mana yang Menggunakan Semua Bandwidth Internet Anda? Gunakan Resource Monitor untuk Menemukannya

2. Proses Explorer

Process Explorer tidak perlu diperkenalkan. Di Process Explorer, yang perlu Anda lakukan adalah menggunakan fitur Temukan dan ketik nama file. Ini menunjukkan proses yang mengakses file.

Dari tampilan panel bawah, Anda dapat menutup pegangan file jika perlu.

Anda harus menjalankan Process Explorer sebagai administrator untuk mengelola proses yang sedang berjalan tinggi. Untuk meningkatkan Process Explorer, klik menu File → Show Details for All Processes .

Lihat artikel terkait Proses Explorer ini:

  • Bagaimana cara menghapus File atau Folder yang Tidak Dapat Dihapus yang Membandel di Windows?
  • Temukan Program Yang Menggunakan Webcam Anda Saat Ini
  • Bagaimana Cara Menemukan Program Yang Menyebabkan Pesan Kesalahan Tidak Diketahui?
  • Apa yang Gagal Menghitung Objek dalam Wadah?

3. Tangani dari Windows Sysinternals

Handle adalah utilitas dari Microsoft Sysinternals yang menampilkan informasi tentang handle terbuka untuk setiap proses dalam sistem. Anda dapat menggunakannya untuk melihat program yang memiliki file terbuka, atau untuk melihat jenis objek dan nama semua pegangan program. Handle adalah seperti versi baris perintah dari Process Explorer.

Catatan: Handle v4.21 memiliki bug kecil di mana ia selalu melaporkan "Tidak ada pegangan yang cocok ditemukan" jika huruf drive dalam huruf besar. Semoga Microsoft memperbaikinya di pembaruan berikutnya.

Dari jendela Command Prompt admin, gunakan sintaks baris perintah untuk menemukan proses yang memiliki file terbuka:

 handle.exe -a -u filename_with_path 

Jika nama file berisi spasi, lampirkan dalam tanda kutip ganda.

Contoh:

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

(Menyebutkan nama file tanpa path mungkin tidak selalu bekerja di setiap situasi. Dianjurkan untuk menyertakan path lengkap selalu.)

Output menunjukkan nama proses, pengidentifikasi proses, nama pengguna, nama file yang dikunci (target) dengan path.

Sysinternals Handle: Argumen baris perintah

 penggunaan: menangani [[-a [-l]] [-u] | [-c [-y]] | [-s]] [-p |] [name] [-nobanner] 
-SebuahBuang semua informasi pegangan.
-lCukup tampilkan pegangan bagian yang didukung pagefile.
-cMenutup pegangan yang ditentukan (ditafsirkan sebagai angka heksadesimal).
Anda harus menentukan proses dengan PID.WARNING: Pegangan penutup dapat menyebabkan ketidakstabilan aplikasi atau sistem.
-yJangan meminta konfirmasi penanganan dekat.
-sCetak hitungan masing-masing jenis pegangan terbuka.
-uTampilkan nama pengguna yang memiliki saat mencari pegangan.
pDump handle milik proses (nama parsial diterima).
namaCari pegangan ke objek dengan (diterima fragmen).
-nobannerJangan tampilkan spanduk startup dan pesan hak cipta.

Tidak ada argumen yang akan membuang semua referensi file.

Tambahkan Sysinternals Handle ke menu klik kanan

Anda dapat menambahkan Sysinternals Handle ke menu klik kanan untuk file untuk dengan cepat menemukan program yang mengunci file. Untuk menambahkannya ke menu konteks, ikuti langkah-langkah ini:

  1. Unduh Handel dari situs Microsoft Sysinternals.
  2. Salin file handle.exe & handle64.exe ke folder - misalnya, d:\tools
  3. Salin baris kode berikut ke Notepad, dan simpan file sebagai find_handle.vbs ke lokasi permanen.
     'Jalankan utilitas Sysinternals Handle.exe dengan argumen nama file. '© Ramesh Srinivasan - https://winhelponline.com/blog' Tanggal Dibuat: Mar 29, 2008 'Tanggal Diperbarui: 11 Juni 2019' Untuk semua versi Windows, termasuk Windows 10 Option Eksplisit Dim objShell, WshShell, objFSO, sBaseKey, sFilename Set objShell = CreateObject ("Shell.Application") Set WshShell = CreateObject ("WScript.Shell") Tetapkan objFSO = CreateObject ("Scripting.FileSystemObject") Jika WScript.Arguments.Count = 0 Maka sBaseKey = "HKCU \ Perangkat Lunak \ Kelas \ * \ shell \ "WshShell.RegWrite sBaseKey &" FindHandle \ ", " Find Handle ", " REG_SZ "WshShell.RegWrite sBaseKey &" FindHandle \ command \ ", " wscript.exe "&" "" "& & _ WScript.ScriptFullName & "" "" & "" & "" "&"% 1 "&" "" ", " REG_SZ "Else If objFSO.FileExists (WScript.Arguments (0)) = Benar Lalu sFilename = lcase (WScript.Arguments (0)) objShell.ShellExecute "cmd.exe", "/kd:\tools\handle.exe -a -u" & _ "" "" & sFilename & "" "" "", "", " runas ", 1 End If End If 

    Catatan: Jalur Sysinternals Handle.exe dikodekan keras sebagai d:\tools\handle.exe dalam skrip di atas. Jika program terletak di jalur yang berbeda, ubah jalur di skrip sesuai. Untuk Windows 64-bit, Anda dapat menggunakan handle.exe atau handle64.exe

  4. Klik dua kali find_handle.vbs untuk menambahkan entri menu konteks di registri. Anda harus melakukan ini hanya sekali. Tetapi, jika Anda memindahkan skrip ke folder lain, Anda harus mengklik dua kali lagi untuk memperbarui lintasan di registri.
  5. Anda akan melihat opsi Find Handle ketika Anda mengklik kanan sebuah file. Mengkliknya akan meluncurkan skrip yang pada gilirannya menjalankan handle.exe dengan argumen nama file untuk menemukan proses yang file terkunci.

Untuk menghapus entri menu konteks Cari Pegangan, mulai Editor Registri ( regedit.exe ) dan hapus kunci berikut:

 HKEY_CURRENT_USER \ Software \ Classes \ * \ shell \ FindHandle 

4. OpenFiles.exe - alat konsol bawaan

Alat bawaan lain yang akan kita gunakan adalah Openfiles.exe, alat konsol yang tidak baru untuk Windows. Awalnya diperkenalkan pada tahun 2000 sebagai bagian dari alat Windows Resource Kit 2000/2003. Utilitas ini kemudian dimasukkan secara default di Windows Vista dan lebih tinggi (termasuk Windows 10). Openfiles menampilkan daftar file yang saat ini terbuka dari folder lokal atau bersama, bersama dengan Handle ID dan nama proses yang dapat dieksekusi. Alat ini juga memungkinkan Anda memutuskan satu atau beberapa file yang dibuka dari jarak jauh dari folder bersama.

Aktifkan bendera global “Maintain Objects Objects” untuk pertama kali

Pertama, untuk mengaktifkan pelacakan penanganan file lokal, Anda perlu mengaktifkan bendera 'kelola daftar objek' dengan menjalankan perintah berikut dari admin Command Prompt.

 openfiles / lokal aktif 

Anda akan melihat pesan berikut:

INFO: Bendera global 'daftar objek penyimpanan' sistem saat ini diaktifkan.

Anda harus menjalankan perintah ini hanya untuk pertama kalinya. Kemudian restart Windows agar perubahan diterapkan.

Lihat file yang terbuka dan nama proses yang sesuai

Setelah memulai ulang Windows, dari jendela admin Command Prompt, ketik:

 openfiles 

Ini mencantumkan ID File / Pegangan, Nama Proses dan daftar file yang dibuka secara lokal atau dibuka dari jarak jauh melalui titik pembagian lokal, dalam format tabel.

Untuk melihat output dalam format Daftar atau CSV, gunakan parameter / query.

 openfiles / query / DAFTAR FO openfiles / query / FO CSV 

Untuk menyalin output ke clipboard, pipa output ke Clip.exe seperti di bawah ini. Kemudian tempelkan output di Notepad atau editor lain pilihan Anda.

 openfiles | klip 

 openfiles / query / DAFTAR FO | klip openfiles / query / FO CSV | klip 

Untuk informasi lebih lanjut tentang menyalin output Command Prompt ke clipboard atau menyimpan output ke file, lihat artikel Cara Menyalin Teks Output Command Prompt ke Clipboard atau Simpan ke File?

Untuk menemukan apakah file tertentu sedang digunakan oleh suatu program (dan untuk mengetahui program mana), Anda dapat menggunakan baris perintah berikut.

 openfiles | findstr / i 

Contoh:

 openfiles | findstr / i eiffel 

Perintah di atas mencantumkan semua file yang terbuka yang berisi kata "eiffel" dalam nama file. Dalam contoh ini, Word 2016 saat ini sedang mengunci file "Menara Eiffel.docx" (ID 4576).

Dan dialog "File In Use" memberi tahu saya hal yang sama.

Putuskan sambungan file yang dibuka dari jarak jauh dari folder bersama.

Untuk memutuskan file yang dibuka dari folder bersama sehingga Anda dapat menghapus, mengganti nama file atau memodifikasi konten, gunakan /disconnect parameter untuk memutuskan koneksi ke file itu. Berikut adalah opsi baris perintah.

 OPENFILES / Putuskan sambungan [/ S sistem [/ U nama pengguna [/ P [kata sandi]]]] {[/ ID id] [/ A diakses oleh] [/ O openmode]} [/ OP openfile] Deskripsi: Memungkinkan administrator untuk memutuskan file dan folder yang telah dibuka dari jarak jauh melalui folder bersama. Daftar Parameter: / S sistem Menentukan sistem jarak jauh yang akan dihubungkan. / U [domain \] pengguna Menentukan konteks pengguna di mana perintah harus dijalankan. / P [kata sandi] Menentukan kata sandi untuk konteks pengguna yang diberikan. / ID id Menentukan untuk memutuskan sambungan file yang terbuka berdasarkan ID file. Wildcard "*" dapat digunakan. / A diakses oleh Menentukan untuk memutuskan semua file yang terbuka dengan nilai "diakses oleh". Wildcard "*" dapat digunakan. / O openmode Menentukan untuk memutuskan semua file yang terbuka dengan nilai "openmode". Nilai yang valid adalah Baca, Tulis atau Baca / Tulis. Wildcard "*" dapat digunakan. / OP openfile Menentukan untuk memutuskan semua koneksi file terbuka yang dibuat oleh nama "file terbuka" tertentu. Wildcard "*" dapat digunakan. /? Menampilkan pesan bantuan ini. Contoh: OPENFILES / Putus /? OPENFILES / Putuskan / ID 1 OPENFILES / Putuskan / A username OPENFILES / Putuskan / O Baca / Tulis OPENFILES / Putuskan / OP "c: \ My Documents \ somedoc.doc" / ID 234 OPENFILES / Putus / sistem / S nama pengguna / ID / ID 5 OPENFILES / Putus / sistem S / U nama pengguna / P kata sandi / ID * 

Openfiles.exe dengan sempurna melakukan pekerjaan untuk mendaftarkan semua file yang terbuka bersama dengan nama proses, tetapi tidak dapat secara paksa menghentikan proses. Namun, alat konsol bawaan yang luar biasa ini (tetapi diabaikan) dapat berguna ketika Anda ingin dengan cepat menemukan nama proses yang menggunakan file, atau untuk memutus file yang sedang diakses melalui folder bersama oleh pengguna jaringan - tanpa tergantung pada solusi pihak ketiga.

5. OpenedFilesView

OpenedFilesView dari Nirsoft menampilkan daftar semua file yang dibuka di sistem Anda. Untuk setiap file yang dibuka, informasi tambahan ditampilkan: menangani nilai, baca / tulis / hapus akses, posisi file, proses yang membuka file, dan banyak lagi ... Secara opsional, Anda juga dapat menutup satu atau lebih file yang dibuka, atau menutup proses yang membuka file-file ini.

Anda dapat menutup proses file yang dipilih atau menutup pegangan file yang dipilih. Nomor pegangan diwakili dalam nilai hex sedangkan alat konsol openfiles.exe menunjukkannya dalam format normal. Alat ini juga memungkinkan Anda menambahkan opsi menu konteks untuk dengan cepat menemukan proses yang saat ini menggunakan file, melalui menu klik kanan. Opsi menu / dukungan baris perintah, menurut saya, adalah salah satu fitur paling berguna yang ditawarkan oleh OpenedFilesView.

Pilihan Editor