Apakah ada perangkat lunak yang dapat mengindeks isi registri untuk pencarian cepat? [Tutup]


16

Pencarian di registri Windows bisa sangat ------ r -------- lo ---- ng.

Apakah ada beberapa alat yang tersedia yang dapat mengindeks isi seluruh registri, atau isi dari sarang tunggal, sehingga pencarian cepat tersedia? (misalnya menghasilkan beberapa database SQLite dengan FTS3 atau FTS4 diaktifkan untuk pencarian teks lengkap)

Terima kasih.

PS. Saya tidak ingin RegScanner atau alat yang melakukan pencarian linear baru setiap kali. Saya ingin pengindeks , yang kemudian pencarian dapat instan. Lihat komentar pertanyaan.




2
@ Benenoit: Ini sangat mengganggu saya, saya akan mencoba menulis aplikasi seperti itu hari ini.
Tamara Wijsman

1
@ TomWij: Akankah ini komersial? Sumber terbuka? Bisakah saya beta-test tolong :-)? Ini adalah proyek yang hebat, dan saya mendukungnya.
Benoit

1
@ TomWij: Saya tidak yakin apa yang Anda maksud dengan "itu berfungsi dengan baik", tetapi perhatikan bahwa Anda telah benar-benar membuka kunci ControlSet001(atau mungkin ControlSet002atau yang lainnya), tidak CurrentControlSet . CurrentControlSetsebenarnya adalah tautan ke kunci-kunci itu, dan tidak mungkin untuk melihat tautan itu sendiri menggunakan fungsi .NET biasa; Anda memerlukan fungsi ingin NtOpenKeymembuka tautan simbolis yang sebenarnya, bukan target. Lihatlah di sini dan di sini .
user541686

Jawaban:


11

pengantar

Saya telah menulis sebuah aplikasi yang mengindeks registri dan aplikasi lain yang mencari indeks ini.

Ini menghasilkan hasil hampir instan saat Anda mengetik, ini memungkinkan Anda untuk dengan cepat mencari beberapa hal.

Lihat demonstrasi video ini , menunjukkan seberapa cepat hasilnya, tiga pencarian berbeda dan dua lompatan registri.

Indeks

masukkan deskripsi gambar di sini

Untuk keperluan pengindeksan, saya menggunakan Lucene.net , bukankah itu terdengar asing ?

Ini memungkinkan saya untuk mengindeks data langsung dari registri, tanpa menggunakan database SQL untuk menyimpan data. Selain itu, Lucene.net memiliki banyak opsi pengindeksan dan fitur terkait pencarian yang berguna!

Indeks ini akan disimpan %LOCALAPPDATA%\RegistryIndex, dan memiliki ukuran sekitar 160 MB.

Aplikasi 1: RegistryIndex.exe

Hal ini akan membuang seluruh registri ke folder indeks yang disebutkan di atas,
silakan catatan bahwa HKEY_CLASSES_ROOTdan HKEY_CURRENT_USERadalah gatal-gatal shortcut dan dengan demikian tidak diindeks.

Meskipun tidak berfungsi tanpa Anda mungkin ingin mengkonfigurasinya untuk secara otomatis dijalankan sebagai administrator .

Setelah aplikasi menunjukkan bahwa itu dilakukan, Anda dapat menutup jendela dan dengan demikian indeks telah dibuat.

Aplikasi 2: RegistrySearch.exe

Ini sederhana, ketik sesuatu untuk dicari di kotak teks di atas dan hasilnya akan mengalir masuk

Mengetik sintaks yang salah akan menghasilkan kotak teks kuning dan kesalahan di bilah status di bagian bawah.

Fitur pencarian khusus seperti operasi wildcard dan boolean didukung, lihat Query Syntax untuk informasi lebih lanjut. Harap perhatikan bahwa bidang yang ditentukan tidak akan berfungsi dalam pengaturan saat ini, sistem mencari dalam gabungan jalur dan nilai tokenized. Jadi A \ B \ C dengan nilai DEF menjadi ABCDE F.

Contoh pencarian jalur yang tepat: "HKEY_LOCAL_MACHINE SOFTWARE"

Pencarian dibatasi hingga 1000 hasil.

Klik dua kali entri untuk melompat ke sana dalam registri, ini menggunakan regjump.exe dari SysInternals.
Anda perlu menjalankan program pencarian sebagai administrator agar lompatan berfungsi, terima EULA pertama kali.

Fitur masa depan

Lihat versi saat ini sebagai Pratinjau Teknis, itu berfungsi tetapi bisa menggunakan refactoring dan make-up.

  • Ikon & versi aplikasi
  • Konfigurasi
  • Menyoroti hasil
  • Paket pemasang
  • Layanan monitor (Melacak perubahan registri menggunakan hook dan memperbarui indeks)

Perubahan

  • 21/03: Sekarang toko di %LOCALAPPDATA%, minta Administratorsizin.

Unduh

Klik di sini untuk mengunduh , unzip semua file ke lokasi yang disukai, buat pintasan ke RegistryIndex / Search.exe.

Sumber

Ini tidak membingungkan, jadi untuk memeriksa IL Anda dapat menggunakan Reflektor jika Anda mau.

Saya mungkin melepaskan source ketika dire-refored dengan sedikit lebih banyak fitur, mungkin saya bisa meletakkannya di CodePlex.


2
Akan lebih baik jika aplikasi Anda menggunakan% LOCALAPPDATA% bukan% APPDATA%.
edusysadmin

1
@edusysadmin: Disesuaikan, sekarang menyimpan ke% LOCALAPPDATA% dan meminta izin administrator.
Tamara Wijsman

1
Terima kasih. Saya telah mengunduh paket, menggunakan Win Vista dalam bahasa Prancis, dan bahkan menjalankan RegistryIndex.exe ketika administrator gagal. (Terus mengatakan "tolong jalankan sebagai administrator"). Apakah Anda punya ide mengapa ini bisa gagal?
Benoit

@ Beneno: Saya menggunakan kode dari situs Microsoft untuk bagian administrator, tetapi sepertinya itu bukan kode internasional. Semua kode lain terlihat internasional. Masalahnya adalah bahwa ia mencari grup "Administrator" untuk mencari izin, karena grup ini disebut berbeda di komputer Anda sehingga gagal. Ini telah diselesaikan sekarang menggunakan new System.Security.Principal.SecurityIdentifier(WellKnownSidType.BuiltinAdministratorsSid, null).Translate(typeof(System.Security.Principal.NTAccount)).ToString().Split('\\').Last()untuk mendapatkan nama grup.
Tamara Wijsman

1
Halo, apakah proyek ini masih hidup? Saya melakukan banyak teknik terbalik terakhir kali dan itu mungkin sangat berguna. Ada tautan baru?
Dmitry Gusarov

3

Lihatlah NirSoft's RegScanner . Bukan pengindeks, tetapi mencari RegEdit dan akan membuka RegEdit untuk Anda ke hit pilihan, di antara fitur-fitur keren lainnya. Pasti mencobanya sebelum Anda memulai proyek pengembangan (kecuali jika Anda ingin melakukan proyek demi melakukannya) - Anda mungkin menemukan Anda tidak benar-benar membutuhkan lebih banyak.


Seperti yang sudah diceritakan dalam komentar: itu adalah alat yang baik, tetapi tidak akan mengindeks apa pun.
Benoit

Dan seperti yang saya katakan juga. Tetapi pertanyaan Anda, pada kalimat pertama, membahas kecepatan lambat RegEdit, bukan tekniknya, dan dengan demikian, alamat RegScanner cukup baik. Saya akan meninggalkan saran untuk siapa pun yang mungkin membantu di masa depan.
JRobert

Alat yang sangat bagus! +1
Piotr Dobrogost

1

Anda dapat mengekspor registri ke file teks .reg dan menggunakan editor favorit Anda untuk mencarinya.


Ini sebenarnya ide yang bagus tapi mungkin kurang optimal karena tidak ada indeksasi.
Benoit

Perhatikan bahwa tentu saja, kemudian memasukkan semua file reg ke SQLite dengan FTS3 atau FTS4 diaktifkan mungkin merupakan cara untuk melakukannya.
Benoit

@ Benit: Sebenarnya, saya mulai dengan hanya menghitung seluruh registri ke file teks biasa pada awalnya dan mencari dengan Notepad ++ sebenarnya cepat dengan sendirinya. Saya menggunakan Lucene.Net untuk melakukan pengindeksan karena ditulis khusus untuk tugas itu dan tidak mengharuskan saya untuk membuat solusi SQL, juga mendukung fitur penyorotan (ini dimaksudkan untuk mesin pencari, btw, SE menggunakan Lucene.net untuk mesin pencari di sini) yang akan saya coba sertakan, mungkin pada versi yang lebih baru. Saya kira pengindeksan / FTS menghasilkan hasil pencarian saat Anda mengetik , tetapi belum mencobanya ...
Tamara Wijsman
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.