File yang saat ini dibuka atau digunakan di Windows tidak dapat dipindahkan atau dihapus sampai ditutup. Sebagian besar waktu menutup program terkait akan melakukan pekerjaan tetapi kadang-kadang masih tidak berhasil karena dipetakan ke memori atau dilindungi oleh proses lain. Untuk mengatasi masalah ini, kebanyakan dari kita hanya akan bergantung pada perangkat lunak pihak ketiga seperti FileASSASSIN, LockHunter, IObit Unlocker, BlitzBlank dan lain-lain yang mampu mendeteksi file yang terkunci dan berusaha membuka kunci untuk tindakan lebih lanjut. Membuka kunci file yang terkunci memiliki risiko sendiri yang dapat menyebabkan crash pada sistem operasi.
Solusi yang lebih aman adalah dengan menandai file untuk dihapus pada reboot berikutnya dan sistem operasi Microsoft Windows telah membuatnya mudah bagi pengembang karena dilengkapi dengan MoveFileEx API untuk menghapus atau mengganti nama / memindahkan file pada saat sistem dinyalakan. Tugas ini dilakukan dengan membaca entri registri yang disebut PendingFileRenameOperations yang terletak di HKLM \ SYSTEM \ CurrentControlSet \ Control \ Session Manager. Perhatikan bahwa kunci registri PendingFileRenameOperations tidak akan ada kecuali ada operasi yang tertunda.
Jika Anda tidak suka bermain-main dengan registri Windows, di sini kami memiliki beberapa alat gratis yang dapat membantu Anda membaca kunci PendingFileRenameOperations dan menampilkan daftar operasi file yang tertunda. Beberapa dari mereka memiliki kemampuan yang memungkinkan Anda untuk menjadwalkan langkah dan menghapus perintah untuk reboot berikutnya. 1. PendMoves dan MoveFile
PendMoves adalah aplikasi baris perintah sederhana oleh Windows Sysinternals di mana ia dapat membaca kunci PendingFileRenameOperations dan menampilkan daftar file yang akan dihapus atau dipindahkan ke lokasi target yang baru. Target kosong akan ditampilkan sebagai DELETE atau jika tidak, itu akan menjadi lokasi baru tempat file sumber akan dipindahkan.
Karena PendMoves adalah aplikasi baris perintah, itu harus dijalankan dari command prompt untuk melihat hasilnya atau Anda hanya akan mendapatkan jendela hitam yang terbuka membuka dan menutup dengan sendirinya. Tekan MENANG + R, ketik cmd di kotak Jalankan dan klik OK. Ubah ke direktori di mana pendmoves.exe berada dan ketik nama file untuk menjalankan aplikasi.
Aplikasi terpisah yang disebut MoveFile yang dibundel bersama dengan PendMoves dalam arsip adalah untuk menambahkan entri di PendingFileRenameOperations untuk menjadwalkan file yang akan dihapus atau dipindahkan pada boot Windows berikutnya. Cukup tentukan sumber dan tujuan untuk memindahkan file atau membiarkan tujuan kosong dengan dua tanda kutip ganda akan menghapus sumber.
Contoh perintah di bawah ini akan memindahkan test.zip dari C: \ ke desktop akun pengguna Raymond.
C: \ movefile.exe c: \ test.zip c: \ raymond \ user \ desktop \ test.zip
Perintah di bawah ini akan menjadwalkan untuk menghapus file test.zip saat boot Windows berikutnya.
C: \ movefile.exe c: \ test.zip ""
Unduh PendMoves dan MoveFile
2. WhyReboot
Jika Anda lebih suka alat yang lebih ramah pengguna yang memiliki antarmuka pengguna grafis, WhyReboot akan menjadi pilihan Anda. WhyReboot adalah alat kecil dan portabel yang menampilkan daftar operasi file yang tertunda dan tambahan kunci registri RunOnce. Kunci registri RunOnce adalah instruksi untuk Windows untuk secara otomatis menjalankan program yang ditentukan hanya sekali selama startup dan kunci akan dihapus ketika telah memproses permintaan.
Meskipun WhyReboot dibuat untuk menentukan apakah Anda harus me-restart komputer Anda ketika Anda diminta setelah menginstal suatu program atau pembaruan, itu masih cukup jauh untuk bisa melakukan itu. WhyReboot tidak mampu memberi tahu Anda jika driver inti penting atau file DLL telah diganti dan memerlukan restart untuk memuat yang cukup umum terlihat dalam perangkat lunak berbasis keamanan seperti program antivirus.
Unduh WhyReboot
3. VBScript WMI
Untuk administrator atau pemrogram yang lebih memilih skrip untuk fleksibilitas dalam menerapkan otomatisasi, kami menemukan VBScript WMI yang berguna yang ditulis oleh Tom Mills, Arsitek Solusi dengan Layanan Microsoft. Pada dasarnya apa yang dilakukan file VBS adalah membaca dan mem-parsing PendingFileRenameOperations yang menampilkan hasilnya di jendela sembulan.
Kode VBS dapat diperoleh dari situs blog Tom Mills MSDN resmi atau Anda dapat mengunduh skrip di bawah ini.
Unduh CheckPendingFileRenameOperations.vbs
4. MoveEx
Ada dua versi MoveEx, satu dibuat oleh Alexander Frink yang dapat ditemukan di Softpedia, yang lain oleh Frank Westlake dari ss64.net dan kami menampilkan yang terakhir. Alasan mengapa kami lebih suka MoveEx oleh Frank daripada Alexander adalah kemampuan untuk menghapus entri individual di PendingFileRenameOperations selain dari sekadar mengurai dan menampilkan operasi.
Untuk melihat entri PendingFileRenameOperations, cukup jalankan aplikasi pada baris perintah. Untuk menghapus entri PendingFileRenameOperations, Anda perlu menambahkan / d bersama dengan nomor entri yang ditampilkan saat menjalankan MoveEx tanpa argumen baris perintah. Seperti yang dapat Anda lihat dari tangkapan layar di atas, perintah pertama mencantumkan semua entri di PendingFileRenameOperations dan perintah kedua yang memiliki "/ d 003" menghapus entri ketiga.
Menambahkan entri PendingFileRenameOperations menggunakan MoveEx sama dengan MoveFile dari Sysinternals yang menentukan sumber diikuti oleh target. Membiarkan target kosong akan menjadwalkan Windows untuk menghapus file sumber.
Unduh MoveEx
5. Secara Manual Menambah atau Menghapus Entri PendingFileRenameOperations
Tidak ada masalah dalam menghapus secara manual kunci PendingFileRenameOperations dari registri sistem tetapi menambahkan entri itu rumit karena itu adalah nilai REG_MULTI_SZ bukan nilai string normal atau DWORD. Untuk menghapus, cukup arahkan ke HKLM \ SYSTEM \ CurrentControlSet \ Control \ Session Manager di registri dan hapus kunci PendingFileRenameOperations.
Untuk menambahkan entri hapus, buka HKLM \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ klik kanan di panel kanan, buka New, pilih Multi-String Value dan beri nama sebagai PendingFileRenameOperations . Klik dua kali pada nilai registri yang baru dibuat dan masukkan lokasi lengkap file dimulai dengan \ ?? \ (misalnya, \ ?? \ C: \ raymondcc.exe ) yang ingin Anda jadwalkan penghapusan. Klik OK setelah selesai. Sekarang klik kanan di PendingFileRenameOperations dan pilih Ubah Data Biner . Anda harus melihat banyak angka dalam data nilai. Masukkan empat nol "00 00" tanpa tanda kutip di ujung string hex dan klik OK. Mulai ulang komputer Anda dan file akan dihapus.
Anehnya, menjadwalkan operasi pemindahan pada file saat boot Windows menggunakan PendingFileRenameOperations jauh lebih mudah jika dibandingkan dengan menghapus karena tidak melibatkan memodifikasi data biner dalam registri. Ikuti langkah-langkah di atas hingga Anda mencapai bagian untuk menambahkan data nilai di kotak Edit Multi-String. Anda perlu menentukan dua jalur yang merupakan sumber dan target. Contoh di bawah ini akan memindahkan file raymondcc.exe dari C: \ source ke c: \ target.
\ ?? \ C: \ source \ raymondcc.exe
\ ?? \ C: \ target \ raymondcc.exe