La recherche dans le registre Windows peut être ve ------ ry ------ lo ---- ng.
Existe-t-il un outil permettant d' indexer le contenu de l'ensemble du registre ou le contenu d'une seule ruche, de sorte que des recherches rapides soient disponibles? (par exemple, générer une base de données SQLite avec FTS3 ou FTS4 activé pour la recherche en texte intégral)
Je vous remercie.
PS. Je ne veux pas de RegScanner ou d'outils qui effectuent une nouvelle recherche linéaire à chaque fois. Je veux un indexeur , avec lequel une recherche peut alors être instantanée. Voir les commentaires des questions.
windows
windows-registry
speed
Benoit
la source
la source
ControlSet001
(ou peutControlSet002
- être ou une autre), nonCurrentControlSet
.CurrentControlSet
est en fait un lien vers ces clés, et il n'est pas possible d'afficher le lien lui - même à l'aide des fonctions .NET standard; vous avez besoin d'une fonction commeNtOpenKey
pour ouvrir le lien symbolique réel au lieu de la cible. Jetez un œil ici et ici .Réponses:
introduction
J'ai écrit une application qui indexe le registre et une autre application qui recherche cet index.
Cela se traduit par des résultats quasi instantanés pendant que vous tapez, cela vous permet de rechercher rapidement plusieurs choses.
Voir cette démonstration vidéo , montre comment les résultats sont rapides, trois recherches différentes et deux sauts de registre.
L'index
À des fins d'indexation, j'utilise Lucene.net , cela ne vous semble -t-il pas familier ?
Cela me permet d'indexer des données directement à partir du registre, sans utiliser de base de données SQL pour stocker les données. De plus, Lucene.net dispose de nombreuses options d'indexation et de fonctions de recherche utiles.
Cet index sera stocké dans
%LOCALAPPDATA%\RegistryIndex
, et a une taille d'environ 160 Mo.Application 1: RegistryIndex.exe
Cela videra tout le registre dans le dossier d'index mentionné ci - dessus,
s'il vous plaît noter que
HKEY_CLASSES_ROOT
etHKEY_CURRENT_USER
sont des ruches raccourci et donc pas indexé.Bien que cela fonctionne sans que vous souhaitiez le configurer pour qu'il s'exécute automatiquement en tant qu'administrateur .
Une fois que l'application montre que c'est fait, vous pouvez fermer la fenêtre et ainsi l'index a été fait.
Application 2: RegistrySearch.exe
Celui-ci est simple, tapez quelque chose à rechercher dans la zone de texte ci-dessus et les résultats circuleront.
La saisie d' une syntaxe incorrecte entraînera une zone de texte jaune et l'erreur dans la barre d'état en bas.
Des fonctionnalités de recherche spéciales comme les caractères génériques et les opérations booléennes sont prises en charge, voir Syntaxe de requête pour plus d'informations. Veuillez noter que la spécification de champs ne fonctionnera pas dans le paramètre actuel, le système recherche dans une concaténation de chemin et de valeur tokenisés. Donc A \ B \ C avec la valeur DEF devient ABCDE F.
Exemple de recherche d'un chemin exact:
"HKEY_LOCAL_MACHINE SOFTWARE"
La recherche est limitée à 1000 résultats.
Double-cliquez sur une entrée pour y accéder dans le Registre, cela utilise regjump.exe de SysInternals.
Vous devez exécuter le programme de recherche en tant qu'administrateur pour que le saut fonctionne, acceptez le CLUF la première fois.
Fonctionnalités futures
Voir la version actuelle comme un aperçu technique, cela fonctionne mais pourrait utiliser le refactoring et le maquillage.
Changements
%LOCALAPPDATA%
, demande laAdministrators
permission.Télécharger
Cliquez ici pour télécharger , décompressez tous les fichiers vers un emplacement préféré, créez des raccourcis vers RegistryIndex / Search.exe.
La source
Il n'est pas obscurci, donc pour inspecter l'IL, vous pouvez utiliser Reflector si vous le souhaitez.
Je pourrais libérer la source quand elle sera refactorisée avec un peu plus de fonctionnalités, je peux peut-être la mettre sur CodePlex.
la source
new System.Security.Principal.SecurityIdentifier(WellKnownSidType.BuiltinAdministratorsSid, null).Translate(typeof(System.Security.Principal.NTAccount)).ToString().Split('\\').Last()
pour obtenir le nom du groupe.Regardez RegScanner de NirSoft . Pas un indexeur, mais il recherche dans RegEdit et il ouvrira RegEdit pour vous à un hit sélectionné, entre autres fonctionnalités intéressantes. Essayez-le certainement avant de commencer un projet de développement (à moins que vous ne vouliez faire le projet pour le faire) - vous constaterez peut-être que vous n'avez pas vraiment besoin de plus.
la source
Vous pouvez exporter le registre vers un fichier texte .reg et utiliser votre éditeur préféré pour le rechercher.
la source